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

How do you open a custom kernel with opencv?

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

我认为有一些内置函数可以做到这一点,但从我所看到的地方我并没有真正理解它,而且在 opencv 中似乎有不止一种可能的方法可以做到这一点。

有人知道 good/fast/efficient 解决这个问题的方法吗?

如果您有一个 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);

希望对您有所帮助。 :)