OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 3920|回复: 0

请教大家一个关于边缘检测的问题,谢谢先!

[复制链接]
发表于 2008-10-11 10:34:57 | 显示全部楼层 |阅读模式
请教各位高手:

        最近由于论文的需要开始学习图像工程,在测试OpenCV的边缘检测函数。有以下几点收获与大家分享,还有一些困惑的地方请大家指点。(我这几天都是用棋盘格图作为例图)


1 边缘检测离不开求方向导数,OpenCV是通过一些过滤器对象来实现的,包括有cvBaseImageFilter对象,这是一个基类,在此基础上实现了cvSepFilter(可分离滤波),cvLinearFiler(线性滤波),cvBoxFilter和cvLaplaceFilter这几个过滤器,其中cvFilter2D用的是cvLinearFiler对象实现,cvSobel是用cvSepFilter对象实现的,CornerEigenValsVecs特征值和特征向量函数是通过cvSepFilter对象与CvBoxFilter对象共同实现的,请问这几种滤波器对象之间有什么差异吗?

2 Sobel边缘检测函数就是一个卷积函数,也是一个求导数(带方向),使用一个模版对目标图像进行Sobel算子的卷积运算(通过CvSepFilter对象进行),可以进行X方向1、2阶,Y方向1、2阶,XY方向混合1、2阶,对例图进行检测的时候发现,进行1阶计算的时候发现,只要左边是白色,右边是黑色的边缘都丢失了,我分析的结果是,Sobel的结果存在一个深度为IPL_DEPTH_8U的图中,Sobel的X方向算子为
|-1  0  1|
|-2  0  2|
|-1  0  1|
对于左边是白色,右边是黑色的边缘,白色为255*-1+黑色0*1,结果是一个负数,对于深度为IPL_DEPTH_8U的图,负数就是黑色,因此显示结果的时候就看不见了!

进行二阶计算的时候就没有丢失边缘的问题,因为负负得正了。

想请问大家我的分析对吗?

请问大家平时对于Sobel、Laplace的边缘检测很少用?Canny和Harris用得比较多?我认为OpenCV中只把Sobel边缘检测当作一个求导数、梯度的计算工具。

3 cvSobel(source,destination,2,2,3)这个函数求出来的是xy方向的混合2阶导数还是梯度?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-27 21:42 , Processed in 0.009322 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表