2026a
# bwareaopen
从二值图像中删除小对象
函数库: TyImageProcessing
# 语法
BW2 = bwareaopen(BW,P)
BW2 = bwareaopen(BW,P,conn)
# 说明
BW2 = bwareaopen(BW,P) 从二值图像 BW 中删除少于 P 个像素的所有连通分量(对象),并生成另一个二值图像 BW2。此运算称为面积开运算。示例
BW2 = bwareaopen(BW,P,conn) 删除所有连通分量,其中,conn 指定所需的连通性。
# 示例
删除图像中包含的像素数少于 50 的对象
读取二值图像。
using TyImageProcessing
using TyPlot
BW = imread("text.png");
使用 bwareaopen 函数删除包含的像素数少于 50 的对象。
BW2 = bwareaopen(BW, 50);
并排显示原始图像和执行了形态学开运算的图像。
imshowpair(BW, BW2, "montage")

# 输入参数
BW — 二值图像二维数值矩阵 | 二维逻辑矩阵
二值图像,指定为任意维度的逻辑或数值数组。
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64 | Bool
P — 对象的最大像素数非负整数
对象的最大像素数,指定为非负整数。
数据类型: Int64
conn — 像素连通性8 (默认) | 4
像素连通性,指定为下列值之一。
| 值 | 意义 |
|---|---|
| 4 | 如果像素的边缘相互接触,则这些像素具有连通性。如果两个相邻像素都为 on 并在水平或垂直方向上连通,则它们是同一对象的一部分。 |
| 8 | 如果像素的边缘或角相互接触,则这些像素具有连通性。如果两个相邻像素都为 on 并在水平、垂直或对角线方向上连通,则它们是同一对象的一部分。 |
数据类型: Int64
# 输出参数
BW2 — 面积开运算后的图像数值矩阵
面积开运算后的图像,以与 BW 大小相同的逻辑数组形式返回。