• 大小: 7KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Matlab
  • 标签: Matlab  

资源简介

区域标记与面积计算。此算法可以对简单的二值图像进行区域标记和面积测量。

资源截图

代码片段和文件信息

clear all
close all
clc
th=0.5;k=1;
image=imread(‘pic.jpg‘);
pix=im2bw(imageth);
imshow(image)
v=-1.*pix+1;
I=-1.*v+1;
figure
imshow(v)
[x y]=size(I);
for i=2:x-1
    for j=2:y-1
        if I(ij) > 0
           k=k+1;
           I(ij)=k;
           if (I(i-1j-1)>0)&&(I(i-1j)>0)&&(I(i-1j+1)>0)&&(I(ij-1)>0)    %m1>0 m2>0 m3>0 m4>0
               I(ij)=I(i-1j-1);   I(i-1j)=I(i-1j-1);  I(i-1j+1)=I(i-1j-1); I(ij-1)=I(i-1j-1);
           elseif (I(i-1j-1)>0)&&(I(i-1j)>0)&&(I(i-1j+1)==0)&&(I(ij-1)>0)   %m1>0 m2>0 m3=0 m4>0
               I(ij)=I(i-1j-1);  I(i-1j)=I(i-1j-1); I(ij-1)=I(i-1j-1);   %k0=k1=k2=k4
           elseif (I(i-1j-1)>0)&&(I(i-1j)>0)&&(I(i-1j+1)==0)&&(I(ij-1)==0)  %m1>0 m2>0 m3=0 m4>0
               I(ij)=I(i-1j-1);  I(i-1j)=I(i-1j-1);         %k0=k1=k2
           elseif (I(i-1j-1)>0)&&(I(i-1j)>0)&&(I(i-1j+1)>0)&&(I(ij-1)==0)  %m1>0 m2>0 m3>0 m4=0
               I(ij)=I(i-1j-1);   I(i-1j)=I(i-1j-1);  I(i-1j+1)=I(i-1j-1);   %k0=k1=k2=k3
           elseif (I(i-1j-1)>0)&&(I(i-1j)==0)&&(I(i-1j+1)==0)&&(I(ij-1)==0)  %m1>0 m2=0 m3=0 m4=0
               I(ij)=I(i-1j-1);   %k0=k1
           elseif (I(i-1j-1)>0)&&(I(i-1j)==0)&&(I(i-1j+1)>0)&&(I(ij-1)==0)  %m1>0 m2=0 m3>0 m4=0
               I(ij)=I(i-1j-1);  I(i-1j+1)=I(i-1j-1); %k0=k1=k3
           elseif (I(i-1j-1)>0)&&(I(i-1j)==0)&&(I(i-1j+1)==0)&&(I(ij-1)>0)  %m1>0 m2=0 m3=0 m4>0
               I(ij)=I(i-1j-1);  I(ij-1)=I(i-1j-1);  %k0=k1=k4
           elseif (I(i-1j-1)>0)&&(I(i-1j)==0)&&(I(i-1j+1)>0)&&(I(ij-1)>0)  %m1>0 m2=0 m3>0 m4>0  
               I(ij)=I(i-1j-1);  I(i-1j+1)=I(i-1j-1);  I(ij-1)=I(i-1j-1);  %k0=k1=k3=k4
           elseif (I(i-1j-1)==0)&&(I(i-1j)>0)&&(I(i-1j+1)>0)&&(I(ij-1)>0)  %m1=0 m2>0 m3>0 m4>0
               I(ij)=I(i-1j);  I(i-1j+1)=I(i-1j); I(ij-1)=I(i-1j);  %k0=k2=k3=k4
           elseif (I(i-1j-1)==0)&&(I(i-1j)>0)&&(I(i-1j+1)>0)&&(I(ij-1)==0)  %m1=0 m2>0 m3>0 m4=0   
               I(ij)=I(i-1j);  I(i-1j+1)=I(i-1j);  %k0=k2=k3
           elseif (I(i-1j-1)==0)&&(I(i-1j)>0)&&(I(i-1j+1)==0)&&(I(ij-1)==0)  %m1=0 m2>0 m3=0 m4=0
               I(ij)=I(i-1j);   %k0=k2
           elseif (I(i-1j-1)==0)&&(I(i-1j)>0)&&(I(i-1j+1)==0)&&(I(ij-1)>0)  %m1=0 m2>0 m3=0 m4>0  
               I(ij)=I(i-1j);  I(ij-1)=I(i-1j);  %k0=k2=k4
           elseif (I(i-1j-1)==0)&&(I(i-1j)==0)&&(I(i-1j+1)>0)&&(I(ij-1)>0)  %m1=0 m2=0 m3>0 m4>0
               I(ij)=I(i-1j+1);  I(ij-1)=I(i-1j+1);   %k0=k3=k4
           elseif (I(i-1j-1)==0)&&(I(i-1j)==0)&&(I(i-1j+1)>0)&&(I(ij-1)>0)  %m1=0 m2=0 m3>0 m4=0    
               I(ij)=I(i-1j+1);   %k0=k3
           elseif (I(i-1j-1)==0)&&(I(i-1j)==0)&&(I(i-1j+1)==0)&&(I(ij-1)>0)  %m1=0 m2=0 m3>0 m4=0
               I(ij)=I(ij-1);
           end 
        if (I(i-1j-1)>0)||(I(i-1j)>0)||(I(i-1j+1)>0)||(I(ij-1)>0)
               k=k-1; 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4526  2009-03-02 17:34  区域标记\labeling.m

     文件       4245  2007-02-04 10:32  区域标记\pic.JPG

    ..A.SH.      4608  2011-04-30 11:09  区域标记\Thumbs.db

     目录          0  2011-04-30 20:00  区域标记

----------- ---------  ---------- -----  ----

                13379                    4


评论

共有 条评论