MATLAB-区域生长法-基于区域生长法的脑白(灰)质的分割

区域生长法的基本思想:

        将具有相似性质的像素集合起来构成区域。具体说来,先对每一个需要分割的区域找一个种子像素作为生长起点,然后根据某种事先确定的生长或相似准则,将种子像素周围邻域中与种子像素具有相同或相似性质的像素合并到种子像素所在区域。此后,将这些新像素当作新的种子像素继续进行上面的过程,直至再没有满足条件的像素可以被包括进来为止。

        区域生长法的一个关键是选择合适的生长或相似准则,大部分区域生长准则使用图像的局部性质。生长准则可以根据不同的原则制定,而使用不同的生长准则会影响到区域生长法的过程和效果。基本的生长准则和方法主要有:1)基于区域灰度差;2)基于区域内灰度分布统计性质;3)基于区域形状。

附代码:

I=imread('mri1.jpg');
imshow(I),title('原始图像');

%区域生长算法
I=double(I)/255;
[M,N]=size(I);
[y,x]=getpts;
x1=round(x);
y1=round(y);
seed=I(x1,y1);
Y =ones(M,N);
Y(x1,y1)=0;
sum=seed;
suit=1;
count=1;
threshold=0.0625;
while count>0
    s=0;
    count=0;
    for i=1:M
      for j=1:N
        if Y(i,j)==0
          if (i-1)>0&(i+1)<(M+1)&(j-1)>0&(j+1)<(N+1)
            for u = -1:1
              for v = -1:1
                if  Y(i+u,j+v)==1&abs(I(i+u,j+v)-seed)<=threshold
                     Y(i+u,j+v)=0;
                     count=count+1;
                     s=s+I(i+u,j+v);
                end    
              end
            end
          end
       end
     end
   end
   suit=suit+count;
   sum=sum+s;
   seed=sum/suit;
end
figure,subplot(131);imshow(I),title('原始图像');
subplot(132);imshow(Y);title('初分割的图像');
clean=bwareaopen(Y,50,4);  
subplot(133);imshow(clean);title('处理后的图像');

J=edge(clean,'canny');


figure,subplot(121);imshow(J),title('脑灰质边缘');
C=[1 0 0];
r=I;g=I;b=I;
r(J)=C(1);g(J)=C(2);b(J)=C(3);
g2=cat(3,r,g,b);
subplot(122);imshow(g2),title('红线勾出脑灰质');

MRI1结果参见图 1-6:  

图1.MRI1 脑白质分割图像

    

图 2 MRI1 勾勒边缘标题

      

图 3 MRI1 边缘勾勒放大后
图 4 MRI1脑灰质分割
图 5 MRI1边缘勾勒
图 6 MRI1脑灰质边缘勾勒放大

        生长准测可以根据不同的原则制定,而使用不同的生长准测会影响到区域生长法的过程和效果,进而影响分割效果。在选取种子时出现种子选取不正确而导致边缘勾勒错误的情况。种子像素的选取也是区域生长法的关键,要想分割提取脑白质,种子像素就要选在脑白质里,要想分割提取脑灰质,种子像素就要选在脑灰质里。

边缘勾勒时会出现不连续的情况,只是因为图像过小,放大后不连续情况消失。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值