主要内容

bwareaopen

从二值图像中移除小物体

描述

例子

BW2= bwareaopen (BWP删除小于的所有已连接组件(对象)P二值图像中的像素BW,产生另一个二值图像,BW2.这个操作被称为区域开放

BW2= bwareaopen (BWP康涅狄格州删除所有连接的组件,其中康涅狄格州指定所需的连通性。

例子

全部折叠

读取二值图像。

BW = imread(“text.png”);

删除包含小于50像素的对象使用bwareaopen函数。

BW2 = bwareaopen(BW, 50);

显示原始图像旁边的形态打开图像。

BW2 imshowpair (BW,“蒙太奇”

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

二值图像,指定为任意维数的逻辑数组或数字数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

对象中的最大像素数,指定为非负整数。

例子:50

数据类型:

像素连接性,指定为本表中的值之一。默认连接性为8对于二维图像,和263d图像。

价值

意义

二维的连接性

4

如果像素的边缘接触,则像素是相连的。如果两个相邻像素都在上,并且沿着水平或垂直方向连接,则它们是同一对象的一部分。

中心像素连接四个像素

当前像素显示为灰色。

8

如果像素的边或角接触,则像素是相连的。两个相邻的像素是同一对象的一部分,如果它们都在并且沿着水平、垂直或对角线方向连接。

中心像素连接八个像素

当前像素显示为灰色。

三维的连接性

6

如果它们的脸接触,像素就连接在一起。两个相邻的像素是同一对象的一部分,如果它们都是on的,并且在:

  • 这些方向之一:内,外,左,右,上,下

中心像素连接到6个像素面

当前像素为立方体的中心。

18

如果像素的面或边接触,则像素是连接的。两个相邻的像素是同一对象的一部分,如果它们都是on的,并且在:

  • 这些方向之一:内,外,左,右,上,下

  • 两个方向的组合,如向下或向上

中心像素连接到6个像素的面和12个像素的边

当前像素为立方体的中心。

26

如果像素的面、边或角接触,则像素是连接的。两个相邻的像素是同一对象的一部分,如果它们都是on的,并且在:

  • 这些方向之一:内,外,左,右,上,下

  • 两个方向的组合,如向下或向上

  • 三个方向的组合,如由右向上或由左向下

中心像素连接的面为6个像素,边为12个像素,角为8个像素

当前像素为立方体的中心。

对于更高维度,bwareaopen使用默认值conndef(ndims (BW),“最大”)

连通性也可以用更通用的方式为任何维度定义,方法是指定一个3-by-3-…的-乘3矩阵0年代和1年代。1值元素定义相对于的中心元素的邻域位置康涅狄格州.请注意,康涅狄格州必须是关于中心元素对称的。看到指定自定义连接获取更多信息。

数据类型:|逻辑

输出参数

全部折叠

区域打开的图像,作为相同大小的逻辑数组返回BW

算法

基本步骤如下

  1. 确定连接的组件:

    CC = bwconncomp(BW, conn);
  2. 计算每个构件的面积:

    S = regionprops(CC,“区域”);
  3. 移除小物件:

    L = labelmatrix(CC);BW2 = ismember(L, find([S;面积]>= P));

扩展功能

版本历史

R2006a之前介绍

另请参阅

|