opencv3.1学习笔记(2)边缘检测算子
2017-04-29 21:48
260 查看
1.引言
入手目标检测有段时间了,之前一直想着通过论文找解决方案,几篇通读下来,发现论文实验结果挺好看,但并不一定适合自己的项目。经公司前辈指点,针对我们的项目问题,可以用最基本的数字图像处理方法来解决,不管是在效率还是在精度上面都比什么高斯混合模型好,特别是在嵌入式平台,对时间要求非常苛刻。这一篇便理理常用的边缘检测算子(edge detectors)。2.Sobel算子
2.1Sobel算子
通常用来检测水平和垂直边缘,它的卷积核为:h1=⎡⎣⎢10−120−210−1⎤⎦⎥
h2=⎡⎣⎢−1−2−1000121⎤⎦⎥
h1对应的是水平边缘,而h2对应的是垂直边缘,opencv实验程序及结果如下:
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; void showEdge() { Mat img = imread("F:\\c_programing\\dataset\\wall4.jpg"); if (img.empty()){ cout << "图像读取失败!" << endl; waitKey(0); exit(EXIT_FAILURE); } Mat edgeVertical, edgeHorizontal; Mat img1; cvtColor(img, img1, CV_BGR2GRAY); GaussianBlur(img1, img1, Size(5, 5), 0.0); double t = (double)getTickCount(); Sobel(img1, edgeHorizontal, CV_8U, 0, 1); Sobel(img1, edgeVertical, CV_8U, 1, 0); t = ((double)getTickCount() - t) / getTickFrequency(); printf("Times passed in miliseconds: %f\n" , t * 1000 ); imshow("showImg1", img); imshow("Horizontal", edgeHorizontal); imshow("Vertical", edgeVertical); waitKey(); } int main() { showEdge(); return 0; }
下图分别为红墙的原图、水平边缘、垂直边缘图:
opencv中的Sobel边缘提取函数为:
CV_EXPORTS_W void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFAULT );
其中ddepth表示输出图像的类型,例如CV_8U;
dx, dy分别表示垂直与水平边缘,取值0或1;
ksize为固定大小3;scale表示导数的倍数;
borderType表示边界扩展类型,卷积核不能处理边缘像素,一般可以镜像反射,或者以特定的值填充若干像素。
相关文章推荐
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
- CImage对象使用罗伯特算子进行边缘检测
- 图像处理常用边缘检测算子总结
- 图像边缘检测——几种图像边缘检测算子的学习及python 实现
- Canny边缘检测算子
- 简述:MATLAB中使用Laplace算子对彩色图像进行边缘检测的方法
- 图像的边缘检测算子总结
- 转载:数字图像处理——边缘检测算子(MATLAB)
- 图像处理常用边缘检测算子总结(转)
- 图像处理常用边缘检测算子总结(转)
- 学习【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑---思维导图笔记
- 边缘检测算子
- vtk中Canny 算子--边缘检测
- OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器
- Canny 边缘检测算子 MATLAB实现
- 图像边缘检测——二阶微分算子(上)Laplace算子、LOG算子、DOG算子(Matlab实现)
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- 边缘检测,Roberts 算子,Sobel算子,Canny 算子
- OpenCV学习笔记(13)OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑