【发布时间】:2013-12-22 10:41:00
【问题描述】:
检测图像中这些圆形的最快方法是什么?
半径始终在(80-100mm)之间。背景总是白色的。并且圆圈将始终位于中心。
我已经尝试过Hough Transform,但我无法真正让它发挥作用。我对此很陌生,我觉得 Hough 变换 对此有点过头了。请建议我正确的方法来做到这一点。
更新
这是我应用霍夫变换后得到的结果。
我使用了here提到的算法。
以下是大算法的相关代码
% applying Hough Below
[accum, circen, cirrad] = ...
CircularHough_Grd(gR, [89 93],...
17.4, 13, 1); % this executes in 0.72 sec
% Lets see what we got
imshow(gR);
hold on;
plot(circen(:,1), circen(:,2), 'r+');
for ii = 1 : size(circen, 1)
rectangle('Position',[circen(ii,1) - cirrad(ii), circen(ii,2) - cirrad(ii), 2*cirrad(ii), 2*cirrad(ii)],...
'Curvature', [1,1], 'edgecolor', 'b', 'linewidth', 1.5);
end
hold off;
有意义的圆圈是中间那个。
【问题讨论】:
-
你能先展示你自己的尝试吗?
标签: matlab image-processing shape