1. 程式人生 > >Matlab中米粒影象處理,米粒個數和大小計算

Matlab中米粒影象處理,米粒個數和大小計算

clear; clc;
% 讀取圖片rice.png
I=imread(‘rice.png’);

% 獲取圖片的背景
BG=imopen(I,strel(‘disk’,15));

%得到背景均勻的圖片
I2=imsubtract(I,BG);

%得到二值化的圖片
level=graythresh(I2);
BW=im2bw(I2,level);

% labeled是處理後的矩陣,numObjects是米粒的個數;
[labeled,numObjects]=bwlabel(BW,8);

% 取一個空矩陣A,用來存放每個米粒佔用的畫素點數目;
[m,n]=size(labeled);
A=zeros(numObjects,1);

% 該迴圈用來統計每個米粒的大小,例如,第 i 個米粒的大小,儲存在A(i)中;

for x=1:numObjects
for i=1:m
for j=1:n
if labeled(i,j)==x
A(x)=A(x)+1;
end
end
end
end