regiongrow.m

%regiongrow源程序
function [g,NR,SI,TI]=regiongrow(f,S,T)
%regiongrow执行区域生长
%[g,NR,SI,TI]=regiongrow(f,S,T).S可以是一个数组,它在每个种子点的坐标为1.
%S也可以是单个种子。
%相似地,T可以是一个数组,f中的每个位置都包含一个阈值。
%T也可以是一个标量,它定义一个全局阈值。
%
%在输出中,g是分割后的图像,每个区域的成员都用整数标出。
%参数NR是不同区域的数目。
%参数SI是一幅包含有种子点的图像。
%参数TI是一幅图像,该图像中包含在经过连通性处理前通过阈值测试的像素。

f=double(f);
%如果S是标量,则包含种子图像。
if numel(S)==1
    SI=f==S;
    S1=S;
else
    %S是一个数组。排除重复,它包含在以下编码部分与种子位置联系去减少循环执行数量。
    SI=bwmorph(3,'shrink',Inf);
    J=find(J);
end

TI=false(size(f));
for K=1:length(S1)
    seedvalue=S1(K);
    S=abs(f-seedvalue)<=T;
    TI=TI|S;
end
%使用SI的函数重构作为标记图像去获得区域与S中每个种子相符合。
%函数bwlabel分配不同的整数去每个区域。
[g,NR]=bwlabel(imreconstruct(SI,TI));

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值