2016-01-04 75 views
0

有一个图像片段A = [7 8 4; 8 6 3; 8 5 1],显示应用不同过滤器的结果。应用过滤器到图像片段

  1. 应用3×3平均滤波器
  2. 应用3×3拉普拉斯滤波器
  3. 在水平方向上施加一个3×3 Sobel滤波器测量梯度

而下面是我的问题:

  1. 9个像素的总和为50,50/9 = 5,所以中心像素的结果应该是5.但是中心周围的像素呢?
  2. 根据函数,很容易得到中心像素的值应该是8 + 5 + 8 + 3 - 4 * 6 = 0,但是中心周围的像素呢?我可以只复制原始值,因为我认为它只是图像片段。
  3. 根据索贝尔操作员Gx = [-1 0 1; -2 0 2; -1 0 1],计算我需要计算的结果Gx * A。但我混淆了乘法。这是矩阵的传统乘法吗?我不知道如何执行这一步骤。
+1

这些技术中没有“围绕中心”。他们计算某个位置上某个像素的值,并在其周围显示边框。即仅用于中心像素。因此,偏离中心的像素将通过稍后(或更早)的计算来计算,其中该特定像素是计算的中心。 – Adriaan

回答

1

所有这些都是图像与给定过滤器的卷积。你所有的问题都是关于在执行这个卷积时处理图像片段中的边缘的问题。

与MATLAB专门相关(如您的标签所示),如果您使用内置函数conv2()函数,MATLAB会将图像和过滤器不重叠的任何区域视为0。所以你的图像片段填充0。