0

我看到了 的文档bwareaopen,但让我感到困惑的是像素数。当我们说8-neighbourhood,这不是说9-pixels吗?在这个函数中,我们指定了像素的数量,如果你看到文档中提供的示例,你会发现他们提到50-pixels了,那仅仅是一个10x5窗口吗?

那么,如果我们指定像素数,该函数究竟会做什么呢?它提到删除小像素。这到底是什么意思?不是图像矩阵中的每个正方形都被视为正方形吗?在这种情况下,什么是small像素?

谢谢。

4

1 回答 1

5

您正在混合 2 个变量。在文档中,我们可以看到以下内容:

BW2 = bwareaopen(BW, P)
BW2 = bwareaopen(BW, P, conn)

你在哪里Pconn变量。

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。

于 2013-04-25T09:24:40.633 回答