该函数如下:
Sobel
使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像差分
void cvSobel( const CvArr* src, CvArr* dst, int xorder, int yorder, int aperture_size=3 );
src
输入图像.
dst
输出图像.
xorder
x 方向上的差分阶数
yorder
y 方向上的差分阶数
aperture_size
扩展 Sobel 核的大小,必须是 1, 3, 5 或 7。 除了尺寸为 1, 其它情况下, aperture_size ×aperture_size 可分离内核将用来计算差分。对 aperture_size=1的情况, 使用 3x1 或 1x3 内核 (不进行高斯平滑操作)。这里有一个特殊变量 CV_SCHARR (=-1),对应 3x3 Scharr 滤波器,可以给出比 3x3 Sobel 滤波更精确的结果。Scharr 滤波器系数是:
对 x-方向 或矩阵转置后对 y-方向。
函数 cvSobel 通过对图像用相应的内核进行卷积操作来计算图像差分:
由于Sobel 算子结合了 Gaussian 平滑和微分,所以,其结果或多或少对噪声有一定的鲁棒性。通常情况,函数调用采用如下参数 (xorder=1, yorder=0, aperture_size=3) 或 (xorder=0, yorder=1, aperture_size=3) 来计算一阶 x- 或 y- 方向的图像差分。第一种情况对应:
核。
第二种对应:
或者
核的选则依赖于图像原点的定义 (origin 来自 IplImage 结构的定义)。由于该函数不进行图像尺度变换,所以和输入图像(数组)相比,输出图像(数组)的元素通常具有更大的绝对数值(译者注:即像素的位深)。为防止溢出,当输入图像是 8 位的,要求输出图像是 16 位的。当然可以用函数 cvConvertScale 或 cvConvertScaleAbs 把运算结果(dst)转换为 8 位的。除了8-位图像,函数也接受 32-位 浮点数图像。所有输入和输出图像都必须是单通道的,并且具有相同的图像尺寸或者ROI尺寸。
例题实现如下:
结果为:
参考文献:
1.学习OpenCV,于仕祺,刘瑞祯,清华大学出版社,pp.169-170.
2.http://www.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86
3.http://blog.csdn.net/cartoonface/article/details/6011127
分享到:
相关推荐
学习笔记(09):Python+OpenCV计算机视觉-sobel算子及其函数使用 计算机视觉.pdf
OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib
学习笔记python+opencv利用拉普拉斯算子锐化与sobel算子锐化(csdn)————程序
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
opencv学习---运动目标(前景)检测
opencv-3.4.4-android-sdk/sdk/build.gradle opencv-3.4.4-android-sdk/sdk/etc opencv-3.4.4-android-sdk/sdk/java
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
在OpenCV中实现用Sobel算子对彩色图像和灰度图像进行边缘检测的算法
opencv-3.4.13-android-sdk .zip压缩包
opencv-4.6.0-android-sdk.zip
已编译好的opencv资源
OpenCV边缘检测Canny算子sobel算子scharr滤波等代码例子 ide环境VS2015,OpenCV3.4.9,编程语言C++
1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于arm64-v8a架构,即64bit cpu。
sobel算子 边缘处理 opencv vs2010
sobel算子 dst=cv2.Sobel(src,ddepth,dx,dy,[ksize]) ddepth—处理结果图像深度,可设为-1(与原图像深度一致,设为-1边界值会丢失),此处为了保留边界,设置为cv2.cv_64F,再cv2.convertScaleAbs 转化为...
opencv4.2+visual studio下利用sobel算子实现边缘检测,实测好用
opencv_contrib-3.4.1.zip作为opencv-3.4.1的扩展包,,在cmake编译opencv时将解压后modules对应路径填入