数米粒个数和测米粒大小

来源:互联网 发布:计算距离的软件 编辑:程序博客网 时间:2024/05/02 04:46

clear,close all
I=imread('Image/mili.bmp');
imshow(I);
%%%估计背景图象
background=imopen(I,strel('disk',15));
figure,surf(double(background(1:8:end,1:8:end))),zlim([0 255]);
set(gca,'ydir','reverse');

%%从原始图片减去背景图象
I2=imsubtract(I,background);
figure,imshow(I2);

%%% 调节图象对比度

I3=imadjust(I2,stretchlim(I2),[0 1]);
figure,imshow(I3);

%%%使用阀值操作将图象转化为二进值图象

level=graythresh(I3);
bw=im2bw(I3,level);
figure,imshow(bw);


%%%对象个数
[labeled,numObjects]=bwlabel(bw,4);

%%%检查标记矩阵(imcrop)
grain=imcrop(labeled)

RGB_label=label2rgb(labeled,@spring,'c','shuffle');
inshow(RGB_label);%%%%problem

%%%测量对象属性
graindata=regionprops(labeled,'basic')

%%%创建一个向量,包括每个米粒的范围 allgrains=[graindata,Area];
%%%最大米粒                       max(allgrains)
%%%最大米粒尺寸                   biggrain=find(allgrains==max(allgrains))
%%%avg size of grain             Mean(allgrains)
%%%20个米粒直方图                 Hist(allgrains,20)

 
原创粉丝点击