原理
在图像中边缘的地方,像素值会出现大幅的波动,这时候像素变化的导数增大,所以只要求一定范围内(比如滤波器范围内)像素值的变化程度即可。
测试代码
#include <opencv\opencv.hpp>
#include <iostream>
using namespace std;
int main()
{
cv::Mat kernel_1 = (cv::Mat_<float>(1, 2) << 1, -1); // 检测垂直边缘
cv::Mat kernel_2 = (cv::Mat_<float>(1, 3) << 1, 0, -1); // 检测垂直边缘
cv::Mat kernel_3 = (cv::Mat_<