我正致力于在相机预览中的图像中实现霍夫变换以进行圆检测。在一些阈值处理之后,图像最有可能看起来如下。
我刚刚介绍了hough变换,我正在使用以下代码。
[rows,columns] = size(circle);
acc = zeros(rows,columns);
r=9;
for x=1:columns
for y=1:rows
if(circle(y,x)==0)
for ang=0:360
t=(ang*pi)/180;
x0=round(x-r*cos(t));
y0=round(y-r*sin(t));
if(x0<columns && x0>0 && y0<rows && y0>0)
acc(y0,x0)=acc(y0,x0)+1;
end
end
end
end
end
如何使用累加器返回一个布尔值(例如,如果有一个圆圈,则返回true)。
如果有比使用Hough Transform更简单的方法,请告诉我。谢谢。
答案 0 :(得分:0)
已经有一个matlab函数可以解决这个问题 http://de.mathworks.com/help/images/ref/imfindcircles.html
或者你只是想自己写一下hough-transform?