c++ - 实际应用过滤器的是什么?

标签 c++ algorithm image-processing

我正在尝试使用我不熟悉的概念解决 C++ 中的一个具有挑战性的问题。

我正在尝试对矩阵应用过滤器。但是就像我说的那样,我对此很陌生,经过一些调查后,我发现此链接显示应用过滤器基本上是乘法

但是让我感到困惑的是,如果我的过滤器是 [0,1,0] 并且我必须将它应用于 5x5 矩阵怎么办。我怎么能那样做?

GIMP Filtering with kernel

An alternative to first link

编辑:第二个链接让我很困惑。我现在几乎正在尝试决定“申请”流程。如果我遵循创建仅具有对角线 [0,1,0] 的 3x3 矩阵的想法,我会像在第二个链接中那样应用它,还是必须将它应用于矩阵中的每个单元格。或者,如果它真的是一个一维过滤器,我应该再次将它应用于每个单元格还是忽略边缘和角落?

最佳答案

这是一个卷积核。

这个想法是用每个像素及其相邻像素的加权平均值替换每个像素,其中权重由卷积核给出。这个过程很好地解释了例如here .

我觉得很奇怪,你有一个一维卷积核(即适合一维图像),而通常用于图像处理的二维卷积核(也从上面/下面的行中获取像素) ),但您的算法可能只需要处理当前行中的像素。

关于c++ - 实际应用过滤器的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10003324/

相关文章:

python - 如何在确保没有连续值相等的情况下随机化列表元素的顺序?

python从原始数据创建jpg文件

opencv - 寻找拼图的角落

c++ - 没有额外的实例方法和变量的对象切片

c++ - 为什么在 C++ 中不允许连接两个 const char*?

algorithm - 求 2 SAT 的解数

algorithm - 数独多项式算法?

python - 去除图像中的倾斜水平线

c++ - 指针访问冲突问题

c++ - 在 .cpp 或 .h 文件中,我应该在哪里包含头文件?