“bwareaopen”如何运作?

时间:2013-04-25 08:34:52

标签: matlab pixels

我看到了bwareaopen的文档,但令我困惑的是像素数。当我们说8-neighbourhood时,这是不是意味着9-pixels?在此函数中,我们指定了像素数,如果您看到文档中提供的示例,您会发现他们提到了50-pixels,这只是一个10x5窗口吗?

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

感谢。

1 个答案:

答案 0 :(得分:5)

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

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

您拥有Pconn个变种。

conn是邻域变量。有了这个,你选择了你理解为“neigbour”的价值观。见例:

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。