MATLAB图像处理中二值化后如何求黑色部分的面积?长和宽?假设黑色圆点的面积为1平方厘米

求黑色不规则图像的面积,长,宽。求高手指导。求高手留下代码!

第1个回答  2014-12-05
简单点就是填充掉图形内的白色点,然后计算黑色像素点数量, 与1cm^2面积的像素数量比较,可得面积追问

有统计黑色像素面积的函数吗?

追答

自己写很简单啊,比如 A中的0就是黑色像素
A =

1 1 1 1 0
1 1 0 0 0
1 1 0 0 0
1 1 1 0 0

>> length(find(A==0))
ans =

9

追问

你好,由于以前没学过编程,现在工作又急需要用。还想请问你一下,里面的白色点怎么填充?有方法能算出长和宽吗?非常感谢!

追答I = imread('test.jpg');
I = rgb2gray(I);
I = im2bw(I);
se1 = strel('disk',5);
I1 = imerode(I,se1);
I2 = imdilate(I1,se1);
I3 = ones(size(I2))-I2;
L = bwlabel(I3);
STATS = regionprops(L,'BoundingBox');
imshow(I2);hold on;
for i = 1:size(STATS,1)
    rectangle('Position',STATS(i).BoundingBox,'EdgeColor','g');
end
str1 = sprintf('W=%4.1f,H=%4.1f',STATS(1).BoundingBox(3),STATS(1).BoundingBox(4));
str2 = sprintf('D=%4.1f',STATS(2).BoundingBox(3));
text(10,10,str1);
text(290,280,str2);

追问

真是非常感谢 谢谢你啦

本回答被提问者和网友采纳
相似回答