【问题标题】:hough circle opencv iOS霍夫圆opencv iOS
【发布时间】:2014-05-12 10:35:34
【问题描述】:

我是 OpenCV 和 Xcode 的新手。

我正在尝试通过使用颜色和霍夫圆检测来找到一些交通标志。这是我到目前为止所做的:

cv::cvtColor(cvImage, cvGrayImage, CV_RGB2HSV);
cv::Mat cvThresh;
cv::inRange(cvGrayImage,cv::Scalar(170,160,10),cv::Scalar(180,255,256),cvThresh);
//cv::dilate(cvThresh,cvThresh, cv::Mat(),cv::Point(-1,-1),2,1,1);
cv::GaussianBlur(cvThresh, cvThresh, cv::Size(9,9), 2,2);

cv::vector<cv::Vec3f> circles;
cv::HoughCircles(cvThresh, circles, CV_HOUGH_GRADIENT, 1,cvThresh.rows/4,200,30);
// NSLog(@"Circles: %ld", circles.size());

for(size_t i = 0; i < circles.size(); i++)
{
    cv::Point center((cvRound(circles[i][0]), cvRound(circles[i][2])));
    int radius = cvRound(circles[i][2]);
    cv::circle(cvImage, center, 3, cv::Scalar(255,0,0), -1, 8, 0);
    cv::circle(cvImage, center, radius, cv::Scalar(0,0,255),3,8,0);
}

这是我的结果,但我不知道了.. 任何想法或建议或示例代码将不胜感激。

【问题讨论】:

  • 感谢编辑的示踪剂..顺便说一句,知道为什么它没有检测到正确的圆圈..我在 opencv windows 中使用相同的方法成功..这就是为什么我很困惑

标签: ios opencv detection


【解决方案1】:

如果您知道要查找的圆圈大小,那么最好相应地设置min_radius 和max_radius。否则,它将返回任何大小的圆形。

参数 1 和 2 本身不影响准确性,更可靠。

  • Param 1 将设置灵敏度;圆圈的边缘需要有多强。太高,它不会检测到任何东西,太低,它会发现太多的混乱。
  • 参数 2 将设置它需要找到多少个边缘点才能声明它找到了一个圆。同样,太高不会检测到任何东西,太低会声明任何东西都是一个圆圈。参数 2 的理想值将与圆的周长有关。

【讨论】:

    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多