opencv学习笔记(三) 边缘检测
2017-10-20 10:02
369 查看
Canny 算子
cv::Mat src = cv::imread("1.jpg"); if (!src.data) { cout << "error" << endl; return -1; } cv::Mat gray, dst; //转换为灰度图像 cv::cvtColor(src, gray, CV_BGR2GRAY); //使用3*3内核来降噪 cv::blur(gray, gray, cv::Size(3, 3)); //使用Canny算子, cv::Canny(gray,//输入图像 dst, //输出图像 40, //滞后性低阙值 120, //滞后性高阙值,推荐的高低阙值为2:1至3:1之间 3);//应用Sobel算子的孔径大小 cv::imshow("原图", src); cv::imshow("Canny 效果图",dst); cv::waitKey(0);
Sobel算子
cv::Mat src = cv::imread("1.jpg"); if (!src.data) { cout << "error" << endl; return -1; } cv::Mat grad_x,grad_y; cv::Mat abs_grad_x, abs_grad_y; cv::Mat dst; //求x方向的梯度 cv::Sobel(src,//输入图像 grad_x,//输出图像 CV_16S,//输出图像的深度,由输入图像的深度来决定 1, //x方向上的差分阶数 0, //y方向上的差分阶数 3, //Sobel的核大小,必须取1,3,5,7 1); //图像缩放因子 cv::convertScaleAbs(grad_x, abs_grad_x); //求y方向的梯度 cv::Sobel(src, grad_y, CV_16S, 1, 0, 3, 1); cv::convertScaleAbs(grad_y, abs_grad_y); //合并梯度 cv::addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, dst); cv::imshow("原图", src); cv::imshow("Sobel 效果图",dst); cv::waitKey(0);
Laplacian算子
让原图减去它的Laplacian算子可以增强对比度cv::Mat src = cv::imread("1.jpg"); if (!src.data) { cout << "error" << endl; return -1; } cv::Mat gray,dst,abs_dst; //高斯滤波 cv::GaussianBlur(src, src, cv::Size(3, 3),0,0); //转换为灰度图 cv::cvtColor(src, gray, CV_BGR2GRAY); //使用Laplace函数 cv::Laplacian(gray,//输入图像,要为单通道8位图像 dst, //输出图像 CV_16S, //输出图像的深度 3, //计算二阶导数的滤波器的孔径大小 1);//比例因子 //计算绝对值,并将结果转换为8位 cv::convertScaleAbs(dst, abs_dst); cv::imshow("原图", gray); cv::imshow("Laplace 效果图", abs_dst); cv::waitKey(0);
相关文章推荐
- OpenCV学习笔记(6)——边缘检测
- python OpenCV学习笔记(十四):边缘检测
- OpenCV学习笔记(三):Canny边缘检测和滚动条制作
- 对视频流进行边缘检测【OpenCV学习笔记6】
- opencv学习笔记(六)二值化以及边缘检测
- opencv学习笔记(二十一) Sobel算子边缘检测
- Python OpenCV 学习笔记之:Canny边缘检测
- OpenCV 2 学习笔记(24): 使用形态学滤波检测边缘与角点
- OpenCV学习笔记——视频的边缘检测
- openCV学习笔记(二)------图像平滑处理和边缘检测
- 【OpenCV学习笔记】2.3图像的腐蚀、膨胀、模糊、边缘检测
- OpenCV学习笔记_图片边缘检测
- OpenCV学习笔记 图像腐蚀模糊和边缘检测
- OpenCV(学习笔记5)-Canny边缘检测
- Opencv学习笔记(二十三) 改进边缘检测算子-----Marr-Hildresh
- 【OpenCV学习笔记 004】 图像的缩放、Canny边缘检测和图像的二值化
- 【OpenCV学习笔记】十九、图像边缘检测
- Opencv学习笔记(四):运用Canny算子边缘检测及Opencv中拖动条事件处理
- OpenCV学习笔记(13)OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- 【OpenCV学习笔记】【编程实例】五 (霍夫圆检测)