1.
I=imread('rice.png');
level=graythresh(I); %找到那个临界点
bw=im2bw(I,level); %把一个图片转换成黑白图片
subplot(121);
imshow(I);
subplot(122);
imshow(bw);
可以看到,变换后的图片并不完美①出现一些白色小点②有些米不见了
出现这些问题的原因,背景打光不均匀
怎么修进①预测背景②把背景剪掉
I=imread('rice.png');
BG=imopen(I,strel('disk',15));
imshow(BG);
可以看得出来,背景中间比较亮,底部较黑。
I=imread('rice.png');
subplot(131);
imshow(I);
BG=imopen(I,strel('disk',15));
subplot(132);
imshow(BG);
I2=imsubtract(I,BG);%imsubtract()减法运算,一个图片减掉另一个图片
subplot(133);
imshow(I2);
I=imread('rice.png');
level=graythresh(I);
bw=im2bw(I,level);
subplot(121);
imshow(bw);
BG=imopen(I,strel('disk',15));
I2=imsubtract(I,BG);
level=graythresh(I2);
bw2=im2bw(I2,level);
subplot(122);
imshow(bw2)
现在米粒清楚了,那么到底有几颗米?
I=imread('rice.png');
BG=imopen(I,strel('disk',15));
I2=imsubtract(I,BG);
level=graythresh(I2);
BW=im2bw(I2,level);
[labeled,numObjects]=bwlabel(BW,8);
所以有99颗米。
互动让使用者选择米
I=imread('rice.png');
BG=imopen(I,strel('disk',15));
I2=imsubtract(I,BG);
BW=im2bw(I2,graythresh(I2));
ObjI=bwselect(BW);
imshow(objI);