//一阶偏导数
Mat m1, m2;
m1 = (Mat_<float>(1, 2) << 1, -1); //x偏导
m2 = (Mat_<float>(2, 1) << 1, -1); //y偏导
Mat dx, dy;
filter2D(img, dx, CV_32FC1, m1);
filter2D(img, dy, CV_32FC1, m2);
//二阶偏导数
Mat m3, m4, m5;
m3 = (Mat_<float>(1, 3) << 1, -2, 1); //二阶x偏导
m4 = (Mat_<float>(3, 1) << 1, -2, 1); //二阶y偏导
m5 = (Mat_<float>(2, 2) << 1, -1, -1, 1); //二阶xy偏导
Mat dxx, dyy, dxy;
filter2D(img, dxx, CV_32FC1, m3);
filter2D(img, dyy, CV_32FC1, m4);
filter2D(img, dxy, CV_32FC1, m5); |