图像处理之区域标记

本文介绍了MATLAB中用于图像处理的bwlabel函数,用于对二值图像进行4连通或8连通的区域标记。通过栈和递归两种方法详细阐述了区域标记的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对应matlab函数:bwlabel,L = bwlabel(BW,n),其中BW为二值图像,而n有两种取值:4和8,分别对应4连通和8连通,默认是8连通;

1.使用栈来实现区域标记代码:

close all;clear all;clc;
I=imread('cameraman.tif');
s=im2bw(I);
L8=bwlabel(s,8);

[m n]=size(s);
tmp=zeros(m,n);

label=0;            %遍历时标记的标签数量
for i=1:m
    for j=1:n
        cur=s(i,j);
        if cur==1&&tmp(i,j)==0             %只有还未遍历过的值为1的才可以进入
            label=label+1;
            tmp(i,j)=label;
            k=1;
            stack(k,1)=i;stack(k,2)=j;       %类似于栈的作用,遍历一个区块的,栈的每一个元素为两个,栈的长度未定
            while(isempty(stack)==0)      %只有全部遍历完才退出栈,同时这些遍历过的元素不会再遍历
                i1=stack(k,1);j1=stack(k,2);
                stack(k,:)=[];
                k=k-1;                   %k表示在栈中的位置,此处为弹出元素
                if i1-1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值