图像边缘检测
【【OpenCV学习笔记】十九、图像边缘检测】Canny边缘检测——Canny()
Sobel边缘检测——Sobel()
Laplacian边缘检测——Laplacian()
先上ppt:
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
代码:
#include "opencv2/opencv.hpp"using namespace cv;
void main()
{
///Canny边缘检测
/*Mat srcImg = imread("1.bmp", CV_LOAD_IMAGE_COLOR);
imshow("src", srcImg);
Mat dstImg;
Canny(srcImg, dstImg, 30, 80);
imshow("Canny", dstImg);
waitKey(0);
*/ /Sobel边缘检测
//Mat grad_x, grad_y;
//Mat abs_grad_x, abs_grad_y, dst;
//Mat src = https://www.it610.com/article/imread("2.png", CV_LOAD_IMAGE_COLOR);
//imshow("src", src);
//Sobel(src, grad_x, CV_16S, 1, 0, 3, 1, 1, BORDER_DEFAULT);
//因为Sobel求出来的结果有正负,8位无符号表示不全,故用16位有符号表示
//convertScaleAbs(grad_x, abs_grad_x);
//将16位有符号转化为8位无符号
//imshow("X方向", abs_grad_x);
//Sobel(src, grad_y, CV_16S, 0, 1, 3, 1, 1, BORDER_DEFAULT);
//convertScaleAbs(grad_y, abs_grad_y);
//imshow("Y方向", abs_grad_y);
//addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, dst);
//imshow("合并效果", dst);
//waitKey(0);
//destroyAllWindows();
///Laplacian边缘检测
Mat grad_x, grad_y;
Mat abs_grad_x, abs_grad_y, dst;
Mat abs_dst;
Mat src = https://www.it610.com/article/imread("1.bmp", CV_LOAD_IMAGE_GRAYSCALE);
imshow("src", src);
Laplacian(src, dst, CV_16S, 5, 1, 0, BORDER_DEFAULT);
convertScaleAbs(dst, abs_dst);
imshow("Laplacian", abs_dst);
waitKey(0);
destroyAllWindows();
}
运行结果:
Canny边缘检测:
文章图片
文章图片
Sobel边缘检测:
文章图片
文章图片
Laplacian边缘检测:
文章图片
推荐阅读
- OpenCV学习之Canny算法边缘检测(可调阈值)
- #|OpenCV学习笔记-MeanShift
- vs2013中将OpenCV程序由x64转化为x86
- OpenCV学习笔记|学习opencv之(六)-图像切割,使用ROI
- OpenCV学习笔记|OpenCV学习笔记09--通过cvPtr2D或指针算法绘制图形
- 【OpenCV学习笔记】二十一、直方图计算及绘制(一)
- Opencv2系列学习笔记7(图像形态学运算)
- opencv学习笔记|opencv4学习笔记(2)-canny边缘检测
- opencv学习笔记|opencv学习笔记(1)-阈值分割3种方法,以及相关参数调试心得