在MATLAB中检测图像内的圆形

变态

检测图像中这些圆形的最快方法是什么?

被检测到的红色圆圈

半径始终在(80-100mm)之间。背景始终为白色。圆圈将始终居中。

我已经尝试过Hough Transform,但无法真正使它工作。我对此很陌生,感觉就像霍夫变换对这是一个过大的杀伤力。请给我建议正确的方法。在此处输入图片说明


更新

这是我应用霍夫变换后得到的。

我已经使用了这里提到的算法

以下是更大算法的相关代码

% 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;

在此处输入图片说明

有意义的圆圈是中间的圆圈。

hai

我的建议如下:
1.转换为灰色图像,增强“与白色的区别”

gimg = min( img, [], 3 );

在此处输入图片说明
2.去除白色区域的阈值

BW = im2bw( gimg, .4 ); 

在此处输入图片说明
3.获取图像区域的面积和质心

st = regionprops( ~BW, 'Area', 'Centroid', 'PixelIdxList' );

4.仅选择足够大的区域

sel = [st.Area] > numel(BW)*0.025; % at least 2.5% of image size
st = st(sel);

5.计算到图像中心的区域距离

cntr = .5 * [size(BW,2) size(BW,1)]; % X-Y coordinates and NOT Row/Col
d = sqrt( sum( bsxfun(@minus,vertcat( st.Centroid ), cntr ).^2, 2 ) );

6.选择最靠近中心的区域

[mn idx] = min(d);

7.创建一个遮罩

res = false(size(BW)); 
res( st(idx).PixelIdxList ) = true;

在此处输入图片说明

您可能还会考虑使用其他区域属性(例如'Eccentricity')来更好地拒绝非圆形区域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

图像python opencv中的圆形轮廓检测

来自分类Dev

如何在Matlab中实现灰度形态学检测灰度图像上的圆形物体?

来自分类Dev

如何在MATLAB中检测几乎重叠的圆形对象?

来自分类Dev

在Matlab中交换图像中的圆形像素

来自分类Dev

使用MATLAB模糊RGB图像中的圆形区域

来自分类Dev

Matlab中的图像差异检测

来自分类Dev

在MATLAB中从灰度图像进行圆检测

来自分类Dev

创建匹配模板以在Matlab中检测图像

来自分类Dev

使用MATLAB检测拥挤图像中的头部

来自分类Dev

在MATLAB中从灰度图像进行圆检测

来自分类Dev

检测圆形SKShapeNode中的触摸?

来自分类Dev

在圆形SKShapeNode中检测触摸?

来自分类Dev

Matlab中的圆形蒙版

来自分类Dev

使用MATLAB检测图像中的低质量圆圈/环

来自分类Dev

如何检测图像中的边缘并创建遮罩(matlab)

来自分类Dev

在视频opencv中检测圆形对象的位置

来自分类Dev

圆形进度条中的圆形图像 [CANVAS]

来自分类Dev

使用OpenCV和Python检测图像上不同类型的圆形和椭圆形

来自分类Dev

图像中的线条检测

来自分类Dev

图像中的矩形检测

来自分类Dev

检测图像中的纹理

来自分类Dev

如何在css中制作圆形图像

来自分类Dev

是否可以在圆形图像中变换UIView?

来自分类Dev

在.net中创建圆形头像图像

来自分类Dev

如何在Titanium中以圆形裁剪图像?

来自分类Dev

透明圆形框架中的矩形图像

来自分类Dev

android中的圆形轮廓图像

来自分类Dev

无法在Swift中形成圆形图像

来自分类Dev

在Android中的圆形路径中移动图像