您尝试使用此代码消除噪音和模糊。
J = double(imread('C:\Users\sai_praneeth7777\Desktop\project\real123.jpg'));
L= imnoise(J,'salt & pepper',0.02);
k = im2bw(I);
se=strel('disk',1);
bw=imopen(k,se);
imshow(bw);
cc = bwconncomp(bw,4);
number1 = cc.NumObjects;
display(number1);
BW1 = imfill(bw,'holes');
cc = bwconncomp(BW1,4);
number2 = cc.NumObjects;
figure;
imshow(L);
display(number2);
imshow(I);
问题是仍然有一些噪音仍然存在,而且一些分歧也不清楚,就像在右上方分区已经消失。我想计算白色碎片的数量,所以我会得到错误的答案。我是新来的matlab和图像处理。
答案 0 :(得分:0)
我会从中值滤波器开始,然后你可以使开口稍微大一些,然后小幅关闭以便使轮廓正规化。但由于边界模糊,你无法进行非常精确/整洁的分割。
如果要分隔不同的组件,可以计算距离图并在分水岭中使用局部最大值。