主要内容

bwlookup

非线性滤波使用查找表

描述

例子

J= bwlookup (BW,附近地区)执行一个2×2或3×3附近非线性滤波操作二进制图像BW。附近的处理决定一个整数索引值用于访问查找表中的值附近地区。所获取的附近地区价值成为输出图像的像素值J在目标位置。

例子

全部折叠

构造向量附近地区这样过滤操作的地方1在有针对性的输入图像的像素位置只有当所有四个像素附近的2×2 BW设置1

lutfun = @ (x)(总和(x (:)) = = 4);附近地区= makelut (lutfun, 2)
附近地区=16×10 0 0 0 0 0 0 0 0 0⋮

加载一个二进制图像。

BW1 = imread (“text.png”);

执行2×2社区处理16-element向量附近地区

BW2 = bwlookup (BW1,附近地区);

显示之前和之后放大图像。

图;h1 =情节(1、2、1);imshow (BW1),轴;标题(原始图像的)h2 =次要情节(1、2、2);imshow (BW2);轴;标题(“侵蚀形象”)% 16 x变焦侵蚀对文本的影响集(h1,“Ylim”64年[1],“Xlim”64年[1]);集(h2,“Ylim”64年[1],“Xlim”64年[1]);

图包含2轴。轴1与原始图像标题包含一个类型的对象的形象。轴2标题侵蚀图像包含一个类型的对象的形象。

输入参数

全部折叠

二进制图像转换的非线性社区过滤操作,指定为一个二维的逻辑矩阵或二维数字矩阵。数字输入,任何非零像素被认为是1(真正的)。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

查找表的输出像素值,指定为一个16岁或512 -元素向量。的大小附近地区决定这两个社区的操作执行。您可以使用makelut函数创建一个查找表。

  • 如果附近地区包含16个数据元素,那么附近矩阵2×2。

  • 如果附近地区包含512个数据元素,则3 x3的邻域矩阵。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

输出参数

全部折叠

返回输出图像,灰度或二进制图像的像素值分布取决于查找表的内容,附近地区。输出图像J输入图像的尺寸一样吗BW和相同的数据类型附近地区

算法

全部折叠

过滤操作的第一步在每个迭代中执行的bwlookup需要计算指数为向量附近地区基于二进制图像像素的邻域矩阵模式BW。的价值附近地区在访问指数,附近地区(索引)插入到输出图像J在目标像素的位置。这导致图像J是相同的数据类型作为向量附近地区

因为有一个一对一的对应目标像素位置,形象J图像大小一样吗BW。如果目标像素的位置在图像的边缘BW如果任何部分的2×2或3×3邻域矩阵超出图像边缘,然后用0填充这些非图像的位置,以便执行过滤操作。

以下数据显示从二进制0和1的映射模式矩阵在附近的二进制表示。1添加到二进制表示收益率指数这是用于访问吗附近地区

2×2附近查找

为2×2的社区,长度(附近地区)是16。在每个街区,有四个像素,每个像素的两个可能状态,所以排列的总数是24= 16。

为了说明这一点,这个例子展示了如何在一个2×2像素模式矩阵确定哪些条目附近地区放在目标像素的位置。

  1. 创建随机16-element附近地区向量包含uint8数据。

    scurr =提高;%保存当前的随机数生成器的种子状态rng (“默认”)%总是产生相同的随机数附近地区= uint8(圆(255 *兰德(16日1)))%生成附近地区rng (scurr);%恢复
    附近地区25 = 208 231 32 233 161 71 139 244 246 204 248 244 124 36
  2. 创建一个2×2形象和这个例子假定目标像素位置的位置BW (1, 1)

    BW = [1 0;0 1]
    BW = 1 0 0 1
  3. 由上图指的是颜色编码映射,这个2×2的二进制表示社区可以计算如下所示的代码片段。逻辑1BW (1, 1)对应于图中蓝色映射到最低有效位(LSB)位置0 4比特(二进制表示,20= 1)。逻辑1BW (2, 2)最重要的一点是红色的地图(MSB)在位置3 4比特二进制表示(23= 8)。

    % BW(1,1):蓝色平方;集一些位置0% BW(2, 2):红场;集一些位置3左边binNot =“1 0 0 1”;% 2 x2邻域矩阵的二进制表示X = bin2dec (binNot);%从二进制转换为十进制指数= X + 1%计算uint8向量索引值加1A11 =附近地区(指数)%值(1,1)
    指数= 10 A11 = 246
  4. 上面的计算预测输出图像应该包含价值246在目标位置(1)

    = bwlookup (BW,附近地区)%进行过滤
    = 246 32 161 231

    (1)实际上等于246。

3×3邻域查找

为3×3的社区,长度(附近地区)是512。在每个街区,有9个像素,每个像素的两个可能状态,所以排列的总数是29= 512。

计算的过程3 x3的邻域处理的二进制表示为2×2的社区是一样的。

扩展功能

另请参阅

介绍了R2012b