gpt4 book ai didi

iphone - HoughCircles 给出了错误的圈数和位置 - iOS

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:04 25 4
gpt4 key购买 nike

我使用 OpenCV 帮助我检测从 iPhone 相机拍摄的图像中的硬币。我正在使用 HoughCircles 方法帮助我找到它们,但结果并不乐观。

cv::Mat greyMat;
cv::Mat filteredMat;
cv::vector<cv::Vec3f> circles;
cv::cvtColor(mainImageCV, greyMat, CV_BGR2GRAY);

cv::threshold(greyMat, filteredMat, 100, 255, CV_THRESH_BINARY);

for ( int i = 1; i < 31; i = i + 2 )
{
// cv::blur( filteredMat, greyMat, cv::Size( i, i ), cv::Point(-1,-1) );
cv::GaussianBlur(filteredMat, greyMat, cv::Size(i,i), 0);
// cv::medianBlur(filteredMat, greyMat, i);
// cv::bilateralFilter(filteredMat, greyMat, i, i*2, i/2);
}

cv::HoughCircles(greyMat, circles, CV_HOUGH_GRADIENT, 1, 50);

NSLog(@"Circles: %ld", circles.size());

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

[self removeOverViews];
[self.imageView setImage: [self UIImageFromCVMat:greyMat]];

当前这段代码返回我有 15 个圆圈,它们都位于图像的右侧,这让我感到困惑。

image with the "circles" drawn over

我是 OpenCV 的新手,几乎没有任何适用于 iOS 的示例让我感到绝望。

任何帮助将不胜感激,提前致谢!

最佳答案

您的算法没有多大意义。似乎您正在迭代地使用 cv::GaussianBlur,但是当您在其上运行 HoughCircles 时,它只会对已由具有 31x31 内核的 GassianBlur 过滤的灰色图像起作用,这将使废话模糊图片。做这样的事情以获得最佳结果可能更有意义:

这将迭代地向您显示所有图像,我相信这是您首先想要做的。

// NOTE only psuedocode, won't compile, need to fix up.
for ( int i = 1; i < 31; i = i + 2 )
{
cv::GaussianBlur(filteredMat, greyMat, cv::Size(i,i), 0);
cv::HoughCircles(greyMat, circles, CV_HOUGH_GRADIENT, 1, 50);

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

要使 HoughCircle 实现正常工作,您仍然需要一些优势。它使用 Canny 边缘检测器,如果您将图像模糊那么多。

此外,我建议您使用 bilateralFilter,它会模糊但会尝试保留一些边缘。

这也可能有助于定义正确的参数:HoughCircles Parameters to recognise balls

关于iphone - HoughCircles 给出了错误的圈数和位置 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com