matlb区域生长代码.docxVIP

  • 1
  • 0
  • 约6.62千字
  • 约 5页
  • 2019-08-08 发布于浙江
  • 举报
本文使用matlab编了一个程序,实现区域生长。 具体思路是这样的: 从灰度图像中取一点作为种子(其实程序略微修改就可实现多个种子点生长,但个人觉得不是很必要),记为P(i,j)。然后,按P点的上-右-下-左-上……的顺序一层一层地生长出去。没一层距离P的距离分别记为a,b,c,d,没生长一次,a,b,c,d的值加1,并在下一层生长前判断是否到达图像边界(注意是边界不是边缘),直到生长完成。 话不多说,具体程序如下: %区域生长法分割图像。每轮生长都是由上到下,从左到右 map1=imread(picturename.jpg); [m,n,dep]=size(map1); %行,列,深度值 A=zeros(m,n); %灰度化 for i=1:m for j=1:n A(i,j)=0.11*map1(i,j,1)+0.59*map1(i,j,2)+0.3*map1(i,j,3); end end %灰度化完成,输出灰度图 figure(1) imshow(A,[]) title(原始灰度图像) B=zeros(m,n); %存储输出图像 fprintf(请取一个目标点,结束后回车\n) [x1,y1]=getpts; %获得区域生长起始点 i=round(x1); %横坐标取整 j=round(y

文档评论(0)

1亿VIP精品文档

相关文档