我看到了 的文档bwareaopen
,但让我感到困惑的是像素数。当我们说8-neighbourhood
,这不是说9-pixels
吗?在这个函数中,我们指定了像素的数量,如果你看到文档中提供的示例,你会发现他们提到50-pixels
了,那仅仅是一个10x5
窗口吗?
那么,如果我们指定像素数,该函数究竟会做什么呢?它提到删除小像素。这到底是什么意思?不是图像矩阵中的每个正方形都被视为正方形吗?在这种情况下,什么是small
像素?
谢谢。
您正在混合 2 个变量。在文档中,我们可以看到以下内容:
BW2 = bwareaopen(BW, P)
BW2 = bwareaopen(BW, P, conn)
你在哪里P
和conn
变量。
conn
是邻域变量。有了这个,您选择了您理解为“邻居”的值。参见示例:
conn=4;
- X -
X 0 X
- X -
conn=8
X X X
X 0 X
X X X
更高的数字代表更高的维度。但P
变量是选择什么是“小”的变量。该功能bwareaopen
将删除小于P
像素的白色区域。
在文档中的示例中,您可以看到:
BW = imread('text.png');
BW2 = bwareaopen(BW, 50);
imshow(BW);
但是“50”是P
变量,而不是conn
. 由于conn
未定义,它将被设置为默认值,在本例中为 8。