opencvsharp查找距n个点不同距离的点的坐标
时间: 2023-12-10 09:37:48 浏览: 220
使用opencv中匹配点对的坐标提取方式
5星 · 资源好评率100%
可以使用 OpenCvSharp 的距离变换(Distance Transform)来实现此功能。首先,将所有 n 个点用白色标记在一个黑色背景上,然后进行距离变换。距离变换会将每个像素替换为离其最近的白色像素的距离值。然后,可以遍历距离变换图像,找到距离不同的点的坐标。
以下是一个简单的示例代码,用于查找距离不同的点的坐标:
```csharp
using OpenCvSharp;
Mat src = new Mat("input.png", ImreadModes.Grayscale);
Mat dst = new Mat();
// 二值化
Cv2.Threshold(src, dst, 0, 255, ThresholdTypes.Binary);
// 距离变换
Cv2.DistanceTransform(dst, dst, DistanceTypes.L2, DistanceMaskSize.Mask3);
// 遍历距离变换图像,找到距离不同的点的坐标
for (int y = 0; y < dst.Rows; y++)
{
for (int x = 0; x < dst.Cols; x++)
{
if (dst.At<float>(y, x) != 0 && dst.At<float>(y, x) != 1 && dst.At<float>(y, x) != 2)
{
// 找到距离为3的点
Console.WriteLine("({0}, {1})", x, y);
}
}
}
```
在上面的示例中,我们假设有一个名为 "input.png" 的图像,其中包含 n 个点。我们首先将其转换为二值图像,然后进行距离变换。接下来,我们遍历距离变换图像,找到距离为 3 的点,并输出它们的坐标。你可以根据需要修改此代码以查找不同距离的点。
阅读全文