scharr()函数介绍
例程
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//0.创建grad_x 和 grad_y矩阵
Mat grad_x, grad_y;
Mat abs_grad_x, abc_grad_y, dst;
//1.载入原始图
Mat src = imread("700levi.jpg");
//2.显示原始图
imshow("原始图", src);
//3.求X方向梯度
Scharr(src, grad_x, CV_16S, 1, 0, 1, 0, BORDER_DEFAULT);
convertScaleAbs(grad_x, abs_grad_x);
imshow("效果图X方向Scharr", abs_grad_x);
//4.求Y方向梯度
Scharr(src, grad_y, CV_16S, 0, 1, 1, 0, BORDER_DEFAULT);
convertScaleAbs(grad_y, abc_grad_y);
imshow("效果图Y方向Scharr", abc_grad_y);
//5.合并梯度(近似)
addWeighted(abs_grad_x, 0.5, abc_grad_y, 0.5, 0, dst);
//6.显示效果图
imshow("效果图,合并梯度后Scharr", dst);
waitKey(0);
return 0;
}