#include <iostream>
#include <opencv2/opencv.hpp>
#define window1 "【原图】"
#define window2 "【效果图1】"
#define window3 "【效果图2】"
using namespace cv;
using namespace std;
//sobel算子简单示例。
int main()
{
//1.原图像。
Mat src = imread("水果图.jpg");
//resize(src, src, Size(), 0.4, 0.4);
imshow(window1,src);
//2.x方向。
Mat sobel_x;
Sobel(src,sobel_x,CV_64F,1,0,3,1,1,BORDER_DEFAULT);
convertScaleAbs(sobel_x,sobel_x);//计算模,并转换为八位图。
imshow("x",sobel_x);
//3.y方向sobel
Mat sobel_y;
Sobel(src,sobel_y,CV_64F,0,1,3,1,1,BORDER_DEFAULT);
convertScaleAbs(sobel_y, sobel_y);
imshow("y",sobel_y);
//4.综合。(近似)
Mat comb_xy;
addWeighted(sobel_x,0.5,sobel_y,0.5,0,comb_xy);
imshow("comb",comb_xy);
waitKey(0);
return 0;
}