MATLAB--数字图像处理 bwlabel()函数

简介: MATLAB--数字图像处理 bwlabel()函数

bwlabel()

用处
一般用在图像区域的分割,比如人脸区域与其他肤色区域分割开

用法
L = bwlabel(BW,n)

返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2....num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。

8连通:是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;

4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。

注意:在8连通中,只有一个像素的上、下、左、右、左上角、左下角、右上角、右下角其中一个位置有像素,则认为它们是连通的,属于一块区域。满足其中一个位置即可,比如只有左边有像素,这样也是算连通的。同理,4连通也是,满足上、下、左、右其中一个位置有像素即可

[L,num] = bwlabel(BW,n)

num返回的就是BW中连通区域的个数,可以理解成一幅图像中可以分成几块连通区域。

举例说明

MATLAB代码

 a=[1,1,1,0,0,0,1,1;
      1,1,1,0,0,0,1,0;
      1,1,1,0,0,0,0,0;
      0,0,0,1,0,0,1,0;
      0,0,0,0,0,0,1,0;]
t_1=bwlabel(a,4)%4连通
t_2=bwlabel(a,8)%8连通

结果

a =
%原矩阵
     1     1     1     0     0     0     1     1
     1     1     1     0     0     0     1     0
     1     1     1     0     0     0     0     0
     0     0     0     1     0     0     1     0
     0     0     0     0     0     0     1     0


t_1 =
%4连通
     1     1     1     0     0     0     3     3
     1     1     1     0     0     0     3     0
     1     1     1     0     0     0     0     0
     0     0     0     2     0     0     4     0
     0     0     0     0     0     0     4     0


t_2 =
%8连通
     1     1     1     0     0     0     2     2
     1     1     1     0     0     0     2     0
     1     1     1     0     0     0     0     0
     0     0     0     1     0     0     3     0
     0     0     0     0     0     0     3     0

解释
上面矩阵a若用4连通分,则可以分成4个区域,若用8连通分,则可以分成3个区域。
结果中的数字代表的是区域的序号。

目录
相关文章
|
3月前
|
算法 Serverless
基于魏格纳函数和焦散线方法的自加速光束matlab模拟与仿真
本项目基于魏格纳函数和焦散线方法,使用MATLAB 2022A模拟自加速光束。通过魏格纳函数法生成多种自加速光束,并设计相应方法,展示仿真结果。核心程序包括相位和幅度的计算、光场分布及拟合分析,实现对光束传播特性的精确控制。应用领域涵盖光学成像、光操控和光束聚焦等。 关键步骤: 1. 利用魏格纳函数计算光场分布。 2. 模拟并展示自加速光束的相位和幅度图像。 3. 通过拟合分析,验证光束加速特性。 该算法原理基于魏格纳函数描述光场分布,结合数值模拟技术,实现对光束形状和传播特性的精确控制。通过调整光束相位分布,可改变其传播特性,如聚焦或加速。
126 20
|
6月前
|
存储 机器学习/深度学习 数据可视化
MATLAB脚本与函数
【10月更文挑战第4天】本文介绍了MATLAB脚本与函数的基本概念及编写方法,涵盖脚本和函数的创建、运行及优缺点,通过示例帮助初学者快速上手。同时,文章还涉及数据类型、控制结构、数据可视化、文件操作、错误处理等内容,提供了丰富的示例和学习资源,助力初学者逐步掌握MATLAB编程。
275 3
|
6月前
|
算法 数据可视化 数据处理
MATLAB内置函数
【10月更文挑战第6天】本文详细介绍了MATLAB的内置函数和自定义函数,涵盖数学计算、矩阵操作、图形绘制等方面。通过具体代码示例,展示了如何使用内置函数和创建自定义函数,以及它们在性能、灵活性和可读性上的优劣。同时,文章还讨论了函数文件与脚本文件的区别,匿名函数和函数句柄的高级应用,帮助读者更好地利用MATLAB解决复杂问题。
174 1
|
8月前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
128 1
|
9月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于负相关误差函数的4集成BP神经网络matlab建模与仿真
**算法预览:** 图像显示无水印的2022a版MATLAB运行结果 **软件版本:** MATLAB 2022a **核心代码片段:** 省略展示 **理论概述:** NCL集成BP网络利用负相关提升泛化,结合多个弱模型减少错误关联。通过λ参数控制模型间负相关程度,λ>0增强集成效果,提高预测准确性和系统稳健性。
|
10月前
|
算法 数据可视化 数据挖掘
MATLAB中常用的数学函数及其应用示例
MATLAB中常用的数学函数及其应用示例
|
11月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
11月前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
11月前
|
调度
知识分享|分段函数线性化及matlab测试
知识分享|分段函数线性化及matlab测试

热门文章

最新文章