图像处理中的卷积运算一般都用来平滑图像、尖锐图像求边缘等等。主要看你选择什么样的核函数了。现在核函数很多,比如高斯平滑核函数,sobel核函数,canny核函数等等。这里举一个sobel核函数的例子来求图像的梯度。

Sobel自动求边缘图(梯度图)在opencv里有特定的函数,具体参照opencv文档(需要自己设定阈值)。这里主要讲怎么用已知的sobel算子(核函数)去平滑当前图像。

C++:void filter2D(InputArraysrc, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1,-1), doubledelta=0,intborderType=BORDER_DEFAULT)

这里要注意的是kerne,写的是单通道浮点型矩阵。

Sobel核函数:

按图一为例,kernel内核为:

Mat kernelY=Mat::zeros(3,3,CV_32FC1);

        kernelY.at<float>(0,0)=1;

        kernelY.at<float>(0,1)=2;

        kernelY.at<float>(0,2)=1;

        kernelY.at<float>(1,0)=0;

        kernelY.at<float>(1,1)=0;

        kernelY.at<float>(1,2)=0;

        kernelY.at<float>(2,0)=-1;

        kernelY.at<float>(2,1)=-2;

        kernelY.at<float>(2,2)=-1;

注意类型。我一开始写成CV_8U和uchar类型,filter2D卷积后就全是白色的。。

然后就直接调用函数:

filter2D(src,sobelY,-1,kernelY,Point(-1,-1),0.0,BORDER_DEFAULT);

 

sobel函数是x,y方向的卷积的叠加,即:

Sx和sy是两种内核卷积后的图像矩阵。M是最后的sobel梯度图。

如果要直接用sobel函数,可以写成:

Sobel(src,edge1,-1,1,0,3,1.0,0.0,4);//两个方向

Sobel(src,edge2,-1,0,1,3,1.0,0.0,4);

edge=abs(edge1)+abs(edge2); //也可以采用标准的平方根形式叠加

两种方式最后得出的边缘图比较类似,个人感觉filter直接平滑的噪声更少。当然也可以认为检测出的'边缘点'(噪声点)个更少

(sobel) (filter)

最新文章

  1. 了不起的 nodejs-TwitterWeb 案例 bug 解决
  2. java继承覆盖与向上转型,权限
  3. [codeforces 519E]E. A and B and Lecture Rooms(树上倍增)
  4. 第二篇T语言实例开发(版本5.3),福彩3D摇号器
  5. 基于 Eclipse 平台的代码生成技术
  6. NOIP2001 一元三次方程求解
  7. cmake编译(编译目标)x86或x64
  8. 201521123104 《Java程序设计》第5周学习总结
  9. ●POJ 2774 Long Long Message
  10. 【题解】P2922 [USACO08DEC]秘密消息Secret Message
  11. ie8遇到的那些事
  12. 12.13 Daily Scrum
  13. java包的所有类生成class
  14. 《剑指offer》-孩子们的游戏(圆圈中最后剩下的数)
  15. UML建模类图【2】--☆☆
  16. weblogic查看版本号教程
  17. sql server 语法 MSDN
  18. Java并发-ConcurrentModificationException原因源码分析与解决办法
  19. KVM源代码解读:linux-3.17.4\include\uapi\linux\kvm.h
  20. 《转》python学习(6)序列类型-字符串

热门文章

  1. python2.7入门---2.x与3​​.x版本区别
  2. HTML页面参数的传递与获取
  3. Java六大设计原则
  4. 20155306 2016-2017-2《Java程序设计》课程总结
  5. [SDOI2010]地精部落 DP
  6. 前端--javaScript之简单介绍
  7. 创建第一个Scrapy项目
  8. Jenkins Git安装设置
  9. 数据库sql优化总结之2-百万级数据库优化方案+案例分析
  10. Linux命令之tar命令