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

比较简单的一个问题,老师让我们自动识别图像里面石子的数量,然后我就上网查资料,有一个算法是先取背景,之后再将背景统一,然后二值化,但是由于图像不同,我的背景统一后成这样了... 比较简单的一个问题,老师让我们自动识别图像里面石子的数量,然后我就上网查资料,有一个算法是先取背景,之后再将背景统一,然后二值化,但是由于图像不同,我的背景统一后成这样了

于是我就想可以通过统计这个三维曲面峰的数量来统计石子的数量,但是不会啊。。。请问我该怎么做?
原图片和代码
I=imread(*1.png*);figure(1),imshow(I);background=imopen(I,strel(*disk*,15));imshow(background)figure,surf(double(background(1:8:end,1:8:end))),zlim([0,255])set(gca,*ydir*,*reverse*)
展开
 我来答
匿名用户
推荐于2016-01-31
展开全部

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

追问
这样解决了真的是谢谢大神,杂点好像直接就腐蚀掉了呢。。。
还有不知道大神能不能统计上面那张图的峰的个数呢,毕竟我也是自己思考了一番呢。。。如果可以的我会再加分的(不知道大神稀不稀罕。。。)如果不行的话就算了
百度网友3c63e6c
2014-11-04 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2788万
展开全部
但是由于图像不同,我的背景统一后成这样了。二值化,然后通过腐蚀连接处,可以统计数目啊,不明白楼主说的图像不同是什么意思
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式