【问题标题】:Apply filter to the image fragment [duplicate]将过滤器应用于图像片段[重复]
【发布时间】:2016-04-08 10:29:42
【问题描述】:

有一个图片片段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. 根据 Sobel 运算符 Gx = [-1 0 1; -2 0 2; -1 0 1],计算我需要计算 Gx * A 的结果。但我混淆了乘法。那是矩阵的传统乘法吗?我不知道如何执行此步骤。

【问题讨论】:

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

标签: matlab image-processing imagefilter sobel


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2020-01-14
    • 2011-06-06
    • 2021-11-11
    相关资源
    最近更新 更多