Image 不使用Hough变换查找图像中的圆

Image 不使用Hough变换查找图像中的圆,image,opencv,processing,Image,Opencv,Processing,我想找到下图中的圆圈。我尝试使用OpenCV,但没有给出正确的结果 有没有其他方法可以找到圆圈 下面是示例代码 vector<Vec3f> circles; Mat src_gray,te; cvtColor(tImg, src_gray, CV_BGR2GRAY); GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2); Canny(src_gray, te, 40, 240, 3); /// Apply the Hough Tr

我想找到下图中的圆圈。我尝试使用OpenCV,但没有给出正确的结果

有没有其他方法可以找到圆圈

下面是示例代码

vector<Vec3f> circles;
Mat src_gray,te; 
cvtColor(tImg, src_gray, CV_BGR2GRAY);
GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2);
Canny(src_gray, te, 40, 240, 3);
/// Apply the Hough Transform to find the circles 
HoughCircles(te, circles, CV_HOUGH_GRADIENT, 1, te.rows / 10, 120, 9, 5, 25); 
矢量圆;
Mat src_gray,te;
CVT颜色(tImg、src_灰色、CV_BGR2灰色);
高斯模糊(src_灰,src_灰,大小(9,9,2,2));
Canny(src_gray,te,40,240,3);
///应用Hough变换查找圆
霍夫圆(te,圆,CV_-HOUGH_梯度,1,te.rows/10,120,9,5,25);
获取轮廓,
1.找到轮廓的质心
2.查找从质心到每个轮廓像素的距离。
3.如果这个距离几乎相同,那么它将是一个圆


我认为Hough圆变换找不到任何圆,因为该图像中没有任何圆。它们不是真正的圆,是吗。您可以尝试Hough ellipse,这里有一些代码,但我不知道它是否有用:。或者,您可以调整图像的大小,使这些圆看起来更像圆。如果图像是从手机上拍摄的,或者说是任何低分辨率的图片。结果是随机的,但如果它是在paint或msWord中生成的,则会正确检测。您能1。张贴你的代码,2。张贴一张有效的图片。手机图片可能有噪音,需要一个高斯滤波器,虽然上面的图片看起来没有噪音。我已经做了一些调整,它给了我更少的不,如果圆圈这里是样本代码向量圈;Mat src_gray,te;CVT颜色(tImg、src_灰色、CV_BGR2灰色);高斯模糊(src_灰,src_灰,大小(9,9,2,2));坎尼(src_gray,te,40,240,3);//应用Hough变换查找圆Hough圆(te、圆、CV_Hough_渐变、1、te.rows/10、120、9、5、25);