
[英]OpenCV - Creating Bounding boxes and circles for contours - Xcode [Objective-C++]
[英]Seed Growing and Hough Circles in Objective-C++ using OpenCV
我正在使用Objective-C ++和OpenCV检测图像上的球。 我尝试使用HoughCircle转换,但未正确检测到球。 对我来说,参数似乎不适合该功能的描述。 Objective-C ++和C ++有什么不同?
这是我的代码和OpenCV函数的描述:
cv::medianBlur(grayMat, grayMat, 17);
std::vector<cv::Vec3f> circles;
cv::HoughCircles(grayMat, circles, CV_HOUGH_GRADIENT,
1, //dp resolution
1, //minDist
140.0, //higher threshold
120.0, //lower threshold
15, //min radius
50); //max radius
如果参数在我实现它们时是正确的,则想法是使用种子生长以获得更好的结果。 我不知道如何在Objective-C ++和OpenCV中实现它。 我已经在C ++中看到了一些示例,但是我不知道如何将其“转换”为Objective-C ++。
您能否看一下我的HoughCircle参数或给我一个用于种子生长的Objective-C ++示例?
非常感谢!
编辑:这是两个示例图像-我需要通用参数来检测两个图片上的球:
您可以在目标C ++项目上使用OpenCV的C ++ API,而无需进行任何更改。
我尝试了您的代码,并编辑了一些参数。 以下参数将检测所有圆圈:
cvtColor(img, gray, COLOR_BGR2GRAY);
medianBlur(gray, gray, 13);
vector<Vec3f> circles;
HoughCircles(gray, circles, HOUGH_GRADIENT, 1,
gray.rows/16,
100, 30, 15, 250
);
尝试使用此代码后,您将注意三件事:
在执行这样的项目时,最好在开始分析图像之前将图像调整为固定大小。 对于不同的图像分辨率,参数值将有所不同,除非您找到一种将其标准化的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.