如何使用opencv打开自定义内核?

时间:2016-04-26 03:24:55

标签: c++ opencv filter convolution

我想要做的就是在opencv中将自定义卷积矩阵(内核)应用于图像(mat或任何其他格式都可以)。

我认为有一些内置函数可以实现它,但我从我看过它的地方并不是真的理解它,似乎有多种可能的方法可以在opencv中完成它。

有没有人知道解决这个问题的好/快/有效方法?

1 个答案:

答案 0 :(得分:2)

如果你有一个5x5内核:

Mat kern = (Mat_<char>(5, 5) << -1, -1, -1, -1, -1,
                                -1, -1, -1, -1, -1,
                                -1, -1, 24, -1, -1,
                                -1, -1, -1, -1, -1,
                                -1, -1, -1, -1, -1);

然后您可以使用de filter2D函数:http://docs.opencv.org/2.4/modules/imgproc/doc/filtering.html#filter2d

应用自定义内核的示例:

filter2D(src_image, dst_image, src_image.depth(), kern);

希望它有所帮助。 :)