opencvsharp canny高精度亚像素分块并行计算后将所有找到的点合并找圆心,请编写c#函数
时间: 2023-11-22 19:51:42 浏览: 113
以下是一个基于OpenCVSharp的Canny边缘检测和霍夫变换的圆检测函数,它使用并行计算和亚像素级别的检测来提高精度。
```csharp
using OpenCvSharp;
public static Point[] FindCircles(Mat image, double cannyThreshold1, double cannyThreshold2, int minRadius, int maxRadius)
{
Mat gray = new Mat();
Cv2.CvtColor(image, gray, ColorConversionCodes.BGR2GRAY);
Mat edges = new Mat();
Cv2.Canny(gray, edges, cannyThreshold1, cannyThreshold2);
Point[][] contours;
HierarchyIndex[] hierarchy;
Cv2.FindContours(edges, out contours, out hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);
CircleSegment[] circles = Parallel.ForEach(contours, (contour) =>
{
CircleSegment[] localCircles = Cv2.HoughCircles(
edges,
HoughModes.Gradient,
1.0,
1.0,
cannyThreshold1,
100.0,
minRadius,
maxRadius);
return localCircles;
}).SelectMany(x => x).ToArray();
List<Point> centers = new List<Point>();
foreach (CircleSegment circle in circles)
{
centers.Add(circle.Center);
}
Point[] uniqueCenters = centers.Distinct().ToArray();
return uniqueCenters;
}
```
这个函数接受一个输入图像、两个Canny边缘检测的阈值、最小和最大半径,并返回找到的圆心的数组。它首先将输入图像转换为灰度图像,然后使用Canny边缘检测找到边缘。接下来,它使用并行计算和霍夫变换来检测圆。最后,它将找到的所有圆心合并成一个唯一的数组并返回。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![sln](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)