Canny边缘检测原理
2015-09-18 15:52
204 查看
有时候,我们需要提取一个图像的边缘利于计算。
opencv实现了Canny边缘检测的函数,方便调用。Canny算子的原理是首先在x,y方向求一阶导数,然后组合为4个方向的导数。这些方向的导数达到局部最大值的点就是组成边缘的候选点。
1.1cvCanny函数:
第一个参数:输入:是灰度图,就算是彩色图也会处理成灰度图
第二个参数:输出的图的位置,输出的图式二值图
第三第四个参数:是两个阈值,上限与下限,如果一个像素的梯度大于上限,则被认为是边缘像素,如果低于下限则被抛弃,如果介于两者之间,只有当其与高于上限阈值的像素连接时才会被接受。
第五个参数:表示模板的大小,如果是3,则表示3*3矩阵的大小
有时候在图像变化的时候需要实时的变化阈值,则可以用滑动条来处理。
1.2 cvCreateTrackbar
函数说明:
第一个参数表示该trackbar的名称。
第二个参数表示窗口名称,该trackbar将显示在这个窗口内。
第三个参数表示创建时滑块的位置。
第四个参数表示滑块位置的最大值,最小值固定为0。
第五个参数表示回调函数。当滑块位置有变化时,系统会调用该回调函数。
1.3 配合使用的回调函数
当trackbar位置被改变的时,系统会调用这个回调函数,并将参数pos设置为表示trackbar位置的数值
演示程序:
View
Code
pos=0:
pos=50:
参考:http://blog.csdn.net/morewindows/article/details/8239625,学习opencv
opencv实现了Canny边缘检测的函数,方便调用。Canny算子的原理是首先在x,y方向求一阶导数,然后组合为4个方向的导数。这些方向的导数达到局部最大值的点就是组成边缘的候选点。
1.1cvCanny函数:
CVAPI(void) cvCanny( const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size CV_DEFAULT(3) );
第一个参数:输入:是灰度图,就算是彩色图也会处理成灰度图
第二个参数:输出的图的位置,输出的图式二值图
第三第四个参数:是两个阈值,上限与下限,如果一个像素的梯度大于上限,则被认为是边缘像素,如果低于下限则被抛弃,如果介于两者之间,只有当其与高于上限阈值的像素连接时才会被接受。
第五个参数:表示模板的大小,如果是3,则表示3*3矩阵的大小
有时候在图像变化的时候需要实时的变化阈值,则可以用滑动条来处理。
1.2 cvCreateTrackbar
CVAPI(int) cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change CV_DEFAULT(NULL));
函数说明:
第一个参数表示该trackbar的名称。
第二个参数表示窗口名称,该trackbar将显示在这个窗口内。
第三个参数表示创建时滑块的位置。
第四个参数表示滑块位置的最大值,最小值固定为0。
第五个参数表示回调函数。当滑块位置有变化时,系统会调用该回调函数。
1.3 配合使用的回调函数
typedef void (CV_CDECL *CvTrackbarCallback)(int pos);
当trackbar位置被改变的时,系统会调用这个回调函数,并将参数pos设置为表示trackbar位置的数值
演示程序:
View
Code
pos=0:
pos=50:
参考:http://blog.csdn.net/morewindows/article/details/8239625,学习opencv
相关文章推荐
- c/c++复习日记 1.不带缓存的I/O和标准I/O
- 代码洁癖症的表现
- IE6 CSS Fixed 固定位置 防闪屏
- 集成项目经理在工作中的常见改进点
- Servlet-监听器Listener
- 笔记05 局部类型
- set集合_变长
- NSString
- 关于高德等集成的打包keystore与联调keystore
- inception安装步骤---自己整理的安装步骤
- 程序员转型产品经理真的明智吗?
- unity3d 在UGUI中制作自适应调整大小的滚动布局控件
- hdu 1026 Ignatius and the Princess I bfs 优先队列 路径记录
- 软工视频和文档大杂烩(二)
- Servlet-过滤器Filter
- 搜索引擎原理
- 使用jquery-combobox实现select下拉框多选之后,如何将下拉框的值传给input隐藏域
- NSSize
- NSRect
- NSRange