clear;
clc;
I=imread('rice.png');
s=strel('disk',2);
I=imerode(I,s);
I=im2bw(I);
I=I*255;
[m,n]=size(I);
%利用队列结构
front=1;
rear=1;%指明下一个像素入队的位置
Queue=zeros(m*n,2);
flag=0;
for i=1:m
for j=1:n
if I(i,j)==255
Queue(rear,1)=i;
Queue(rear,2)=j;
flag=flag+1;
I(i,j)=flag;
rear=rear+1;
end
while rear~=front
temp_i=Queue(front,1);
temp_j=Queue(front,2);
front=front+1;
cond1=(temp_i-1)*(temp_j-1);
if (cond1&I(temp_i-1,temp_j-1)==255) %1
Queue(rear,1)=temp_i-1;
Queue(rear,2)=temp_j-1;
I(temp_i-1,temp_j-1)=flag;
rear=rear+1;
end
cond2=(temp_i-1)*(temp_j);
像素标记法统计图像中连通域的个数
最新推荐文章于 2022-09-01 08:00:00 发布