关于matlab程序的一个比较简单的问题

2025-04-30 22:17:51
推荐回答(2个)
回答1:

f=imread('e:\test\stone.png');

subplot(221),imshow(f),title('原始图像')

bw1=im2bw(f,graythresh(f));%二值化

subplot(222),imshow(bw1),title('二值图像')

h1=bwareaopen(bw1,20);%删除小面积杂点

subplot(223),imshow(h1),title('去除杂点后图像')

se=strel('disk',7);

h2=imerode(h1,se);%腐蚀

subplot(224),imshow(h2),title('腐蚀图像')

[L,n]=bwlabel(h2);%标记

fprintf('石头的数量为: %d\n',n); %检测到目标的数量,即为石头的数量

石头的数量为: 20

回答2:

但是由于图像不同,我的背景统一后成这样了。二值化,然后通过腐蚀连接处,可以统计数目啊,不明白楼主说的图像不同是什么意思