有一个图像片段A = [7 8 4; 8 6 3; 8 5 1]
,显示应用不同滤波器的结果。
- 应用3*3均值滤波器
- 应用3*3拉普拉斯滤波器
- 应用3*3 Sobel滤波器测量水平方向上的梯度
下面是我的问题:
- 9个像素之和为50,50/9=5,因此中心像素的结果应为5。但是中心周围的像素呢
- 根据函数,很容易得到中心像素的值应该是
8 + 5 + 8 + 3 - 4 * 6 = 0
,但中心周围的像素呢?我可以复制原始值吗,因为我认为它只是图像片段 - 根据Sobel算子
Gx = [-1 0 1; -2 0 2; -1 0 1]
,为了计算结果,我需要计算Gx * A
。但我把乘法搞混了。这是传统的矩阵乘法吗?我不知道该怎么做
所有这些都是具有给定滤波器的图像的卷积。您的所有问题都是关于在执行此卷积时对图像片段中的边缘的处理。
特别是关于MATLAB(正如您的标签所示),如果您使用内置的conv2()
函数,MATLAB会将图像和滤波器不重叠的任何区域视为0。因此,您的图像片段填充了0。