您的位置:首页 > 编程语言 > C语言/C++

C/C++ OpenCV之Sobel边缘检测

2017-01-10 16:31 295 查看
Void Sobel(

outputArray src,

int depth,

int dx,

int dy,

int ksize=3,

double scale=1,

double delat=0,

int borderType=BORDER_DEFAULT

)

下面是代码:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main()
{
Mat grad_x, grad_y,dst;
Mat src = imread("1.jpg");

namedWindow("原图");
imshow("原图", src);

//x方向
Sobel(src, grad_x, CV_8U, 1, 0, 3, 1, 0, BORDER_DEFAULT);

namedWindow("x方向");
imshow("x方向", grad_x);

//y方向
Sobel(src, grad_y, CV_8U, 0, 1, 3, 1, 0, BORDER_DEFAULT);
namedWindow("y方向");
imshow("y方向", grad_y);

//合并的
addWeighted(grad_x, 0.5, grad_y, 0.5, 0, dst);
namedWindow("x+y");
imshow("x+y", dst);

waitKey(0);
return 0;
}
运行结果:



x方向:他会把y方向的部分画出来

y方向:他会把x方向的部分画出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv