我看到了bwareaopen
的文档,但令我困惑的是像素数。当我们说8-neighbourhood
时,这是不是意味着9-pixels
?在此函数中,我们指定了像素数,如果您看到文档中提供的示例,您会发现他们提到了50-pixels
,这只是一个10x5
窗口吗?
那么,如果我们指定像素数,该函数究竟会做什么?它提到删除小像素。这到底是什么意思?图像矩阵中的每个正方形都不是正方形吗?在这种情况下,small
像素是多少?
感谢。
答案 0 :(得分:5)
您正在混合其中两个变量。 在文档中我们可以看到以下内容:
BW2 = bwareaopen(BW, P)
BW2 = bwareaopen(BW, P, conn)
您拥有P
和conn
个变种。
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。