二值图像中矩形斑点的提取

29个视图(过去30天)
阿亚兹·瓦齐尔
阿亚兹·瓦齐尔 2017年9月21日
编辑: 秋田 2017年10月2日
我有一个二值图像有许多不同形状的斑点。一块是完整的矩形。现在我要提取矩形blob。

0条评论

登入发表评论。

接受的答案

秋田
秋田 2017年9月21日
比较blob周围的长度和blob边界框周围的长度,例如:
%博客示例
I=读('柱集c.png');
Iblob=rgb2gray(I)>200;
%测量每个blob的周长和边界框
stats=区域属性(Iblob{'边界框','周界'});
stats=struct2table(stats);
%提取周长接近其边界框圆形长度的blob
统计比率=2*总和(stats.BoundingBox属性(:,3:4),2)/统计周长;
idx=绝对值(1-统计比率)<0.1;
统计数据(~idx,:)=[];
%显示结果
imshow(Iblob);
持有
对于kk=1:高度(统计)
矩形('位置',stats.BoundingBox(KK,:),...
'线宽',3岁,...
“边缘颜色”,“g”,...
'线型',':');
结束

2条评论

阿亚兹·瓦齐尔
阿亚兹·瓦齐尔 2017年9月28日
亲爱的Akira Agata,我想提取一个非常接近长方形的斑点,如图中的红色圆圈。图片如下。
秋田
秋田 2017年10月2日
好 啊。下面的可可怎么样?在这段代码中,我添加了第二个度量来标识矩形形状。
%阅读矩形.jpg把它变成blob图像
I=读('矩形.jpg');
I=rgb2gray(I);
Iblob = I> 127;
Iblob=imclearborder(Iblob,4);
%测量每个blob的周长和边界框
stats=区域属性(Iblob{'区域','边界框','周界'});
stats=struct2table(stats);
%第一度量:包围盒的周长与圆长之比
stats.Metric1 = 2 *总和(stats.BoundingBox(:,3:4),2)./ stats.Perimeter;
idx1=绝对值(1-统计度量1)<0.1;
%第二个度量:blob区域与其边界框区域之间的比率
统计度量2= 统计区域./(stats.BoundingBox属性(:,3)*stats.BoundingBox属性(:,4));
idx2=统计度量2>0.8分;
idx=idx1&idx2;
统计数据(~idx,:)=[];
%显示结果
imshow(Iblob);
持有
对于kk=1:高度(统计)
矩形('位置',stats.BoundingBox(KK,:),...
'线宽',3岁,...
“边缘颜色”,“g”,...
'线型',':');
结束

登入发表评论。

更多答案(1)

图像分析员
图像分析员 2017年9月21日
请参阅我的图像处理教程 //www.tatmou.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads描述 我在哪里 究竟 那。

0条评论

登入发表评论。

登入来回答这个问题。

下载188bet金宝搏