不知道什么原因,程序错误,师兄也不懂,算了
#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include"opencv2/highgui/highgui.hpp"
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
#include<time.h>
#include<vector>
using namespace std;
using namespace cv;
int main()
{
Mat grad_x, grad_y, dst;
Mat abs_grad_x, abs_grad_y;
Mat src = imread("C:/Users/离子键/source/repos/Project8/1.jpg");
imshow("【原始图】sobel边缘检测", src);
Sobel(src, grad_x, CV_16S, 0, 1, 3, 1, 1, BORDER_DEFAULT);
convertScaleAbs(grad_x,grad_x);
imshow("【效果图】X方向Sobel", abs_grad_x);
Sobel(src, grad_y, CV_16S, 0, 1, 3, 1, 1, BORDER_DEFAULT);
convertScaleAbs(grad_y, grad_y);
imshow("【效果图】Y方向Sobel", abs_grad_y);
addWeighted(abs_grad_x,0.5,abs_grad_y,0.5,0,dst);
imshow("【效果图】整体方向Sobel", dst);
waitKey(0);
return 0;
}
运行结果如图:
原版介绍: