主要内容

查找表的操作

创建查找表

某些二进制图像操作最容易通过查找表实现。查询表是一个列向量,其中的每个元素表示要返回的值,这是一个邻近区域中一个可能的像素组合。要为各种操作创建查找表,请使用makelut函数。makelut为2 × 2和3 × 3社区创建查找表。下图说明了这些类型的社区。每个邻域像素用x表示,中心像素为带圆的像素。

对于一个2 × 2的邻域,邻域中的像素有16种可能的排列。因此,这个操作的查询表是一个包含16个元素的向量。对于3 × 3的邻域,有512种排列,因此查找表是一个包含512个元素的向量。

请注意

makelutapplylut万博1manbetx只支持2乘2和3乘3的社区。大于3 × 3的社区的查询表是不实用的。例如,一个4 × 4社区的查询表将有65,536个条目。

使用查找表

创建查找表后,可以使用它执行所需的操作applylut函数。

下面的示例演示了如何使用查询表操作修改包含文本的图像。该示例创建了一个匿名函数,如果3 × 3的邻域中有3个或更多像素为1,该函数返回1;否则,它将返回0.然后,该示例调用makelut,将此函数作为第一个参数传入,并使用第二个参数指定一个3 × 3的查找表。

F = @(x) sum(x(:)) >= 3;附近地区= makelut (f, 3);

附近地区返回一个包含512个元素(1和0)的向量。每个值都是该函数的512种可能排列中的一种的输出。

然后使用applylut

BW1 = imread(“text.png”);BW2 = applylut (BW1,附近地区);imshow (BW1)图,imshow (BW2)

应用查找表操作前后的图像

有关如何applylut将图像中的像素组合映射到查找表中的条目,参见参考页applylut