内核其实就是一种模板,在图像处理中,经常会需要使用到模板,即内核,如平滑、锐化等操作时。
那么如何定义一个内核呢?
若:已知模板,如常见拉普拉斯算子模板:
0 -1 0
-1 4 -1
0 -1 0
可定义为:
Mat kernel(3, 3, CV_32F, cv::Scalar(0));
kernel.at<float>(1, 1) = 4.0;
kernel.at<float>(0, 1) = -1.0;
kernel.at<float>(2, 1) = -1.0;
kernel.at<float>(1, 0) = -1.0;
kernel.at<float>(1, 2) = -1.0;
图像处理中,如何找到我们需要的模板,是困难度最大的部分。
通过傅里叶变换,来找模板是一种常见方式。