我希望能识别出图像中的圆圈。圆圈是在图像中出现的车辆的轮胎。然而,利用霍夫的变换,许多圆圈出现在图像中,而不是轮胎周围的圆圈。不确定是否有更好的方法来解决这个问题。
另外,是否有一种方法可以识别图像中最大的矩形,即车辆的存储容器。
任何指点都会有很大帮助。
问候维杰
发布于 2014-08-01 05:10:37
我认为你需要使用参数来过滤掉不想要的圆圈。
void HoughCircles(InputArray图像,OutputArray圆圈,int方法,双dp,双minDist,双param1=100,双param2=100,int minRadius=0,int maxRadius=0 )
minDist -检测圆中心之间的最小距离。如果参数太小,除了一个真实的圆外,还可能会错误地检测到多个相邻圆。如果它太大,可能会错过一些圆圈。
param1 -第一个方法-特定参数。对于CV_HOUGH_GRADIENT,这是两个传递给Canny()边缘检测器的较高阈值(下一个比Canny()边缘检测器小两倍)。
param2 -第二个方法-特定参数。对于CV_HOUGH_GRADIENT,它是圆中心在检测阶段的累加器阈值。它越小,可能检测到的假圆越多。圆,对应于较大的累加器值,将首先返回。
minRadius -最小圆半径。maxRadius -最大圆半径
发布于 2014-08-01 04:14:24
对于第一个问题,您可以在下面的纸上尝试“快速圆检测”算法。
基于梯度对矢量的快速圆检测
我在以前的项目中取得了很好的效果,这是一个实时处理,寻找虹膜和人眼巩膜之间的边界。
希望这能有所帮助。
https://stackoverflow.com/questions/25064316
复制相似问题