原文: http://blog.sina.com.cn/s/blog_6df50e1a01019z95.html

1.使用模板处理图像相关概念    
   模板:矩阵方块,其数学含义是一种卷积运算。
   卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相乘,所有乘积之和作为区域中心像素的新值。
   卷积核:卷积时使用到的权用一个矩阵表示,该矩阵与使用的图像区域大小相同,其行、列都是奇数,是一个权矩阵。
   卷积示例:3 * 3 的像素区域R与卷积核G的卷积运算 R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 +R5G5 + R6G6 + R7G7 + R8G8 + R9G9

2.使用模板处理图像的问题
   边界问题:当处理图像边界像素时,卷积核与图像使用区域不能匹配,卷积核的中心与边界像素点对应,卷积运算将出现问题。
   处理办法:
  A.忽略边界像素,即处理后的图像将丢掉这些像素。
  B.保留原边界像素,即copy边界像素到处理后的图像。

3.常用模板

4.卷积的概念
   如果你刚刚接触图像处理,或者离开大学很长时间,一看到卷积这个东西,肯定和我一样感到晕菜.那么就复习一下,并且实际的写个程序验证一下,我保证你这辈子不会再忘记卷积的概念了。我们来看一下一维卷积的概念。
   连续空间的卷积定义是 f(x)与g(x)的卷积是 f(t-x)g(x)在t从负无穷到正无穷的积分值。t-x要在f(x)定义域内,所以看上去很大的积分实际上还是在一定范围的。
   实际的过程就是f(x)先做一个Y轴的反转,然后再沿X轴平移t就是f(t-x),然后再把g(x)拿来,两者乘积的值再积分.想象一下如果g(x)或者f(x)是个单位的阶越函数。那么就是f(t-x)与g(x)相交部分的面积。这就是卷积了。

把积分符号换成求和就是离散空间的卷积定义了。那么在图像中卷积卷积地是什么意思呢?就是图像就是图像f(x),模板是g(x),然后将模版g(x)在模版中移动,每到一个位置,就把f(x)与g(x)的定义域相交的元素进行乘积并且求和,得出新的图像一点,就是被卷积后的图像。模版又称为卷积核。卷积核做一个矩阵的形状。
   卷积定义上是线性系统分析经常用到的。线性系统就是一个系统的输入和输出的关系是线性关系,就是说整个系统可以分解成N多的无关独立变化,整个系统就是这些变化的累加。如 x1->y1, x2->y2;那么A*x1 + B*x2 -> A*y1 + B*y2 这就是线性系统。 表示一个线性系统可以用积分的形式,如Y=Sf(t,x)g(x)dt S表示积分符号,就是f(t,x)表示的是A,B之类的线性系数。
   看上去很像卷积呀。对!如果f(t,x) = F(t-x)不就是了吗。从f(t,x)变成F(t-x)实际上是说明f(t,x)是个线性移不变,就是说,变量的差不变化的时候,那么函数的值不变化。实际上说明一个事情就是说,线性移不变系统的输出可以通过输入和表示系统线性特征的函数卷积得到。

卷积是图像处理常用的方法,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权值由一个函数定义,这个函数称为卷积核。比如说卷积公式:R(u,v)=∑∑G(u-i,v-j)f(i,j),其中f为输入,G为卷积核。

OpenCV对图像做卷积cvFilter2D
voidcvFilter2D( const CvArr* src, CvArr* dst,
                const CvMat* kernel,
                CvPoint anchor=cvPoint(-1,-1));

5.OpenCV图像卷积(图像滤波)的程序代码

#include "cv.h"
#include "highgui.h"

int main(intargc,char**argv) 

  IplImage* src, *dst,src_f;  
 
  float low[9] ={ 1.0/16, 2.0/16, 1.0/16,2.0/16, 4.0/16, 2.0/16, 1.0/16, 2.0/16, 1.0/16 };//低通滤波核
  floathigh[9]={-1,-1,-1,-1,9,-1,-1,-1,-1};//高通滤波核

CvMat km= cvMat( 3, 3, CV_32FC1, low); //构造单通道浮点矩阵,将图像IplImage结构转换为图像数组

src =cvLoadImage( "lena.jpg" ); 
  st = cvCreateImage( cvGetSize(src),IPL_DEPTH_8U, 3 );

cvFilter2D( src, dst, &km, cvPoint( -1, -1 ));  //设参考点为核的中心

cvNamedWindow( "src", 0 );
  cvNamedWindow( "filtering", 0);

cvShowImage( "src", src);  
  cvShowImage( "filtering", dst);

cvWaitKey(0); 
  cvReleaseImage( &src); 
  cvReleaseImage( &dst);

return0; 
}

图像经过低通滤波的结果对比:

图像经过高通滤波的结果对比:

Opencv卷积滤波cvFilter2D-高通与低通相关推荐

  1. python图像处理基础 || (五) 图像频域的阈值型高通与低通滤波

    图像频域的阈值型高通与低通滤波 文章目录 图像频域的阈值型高通与低通滤波 1. 频域图像非卷积操作的高通滤波 2. 频域图像非卷积操作的低通滤波 3. 频域图像的带通滤波 本部分内容所用的数据放在百度 ...

  2. OPENCV计算机视觉图像处理频域傅里叶 DFT 变换低通滤波逆变换IDFT

    OpenCV计算机视觉图像频域傅里叶 DFT 变换低通滤波逆变换IDFT 实验室做图像的,经常用到这部分,为了检测屏幕,看过好多博客,试用过许多代码,这个算是我找到的比较好用的,也容易改. 傅里叶变换 ...

  3. 高通、低通、带通 三种滤波器的工作原理

    滤波_视频讲解 图片来源视频 滤波是将信号中特定波段频率滤除,得到想要的频率信号的操作,是抑制和防止干扰的一项重要措施. 滤波器主要有低通滤波器.高通滤波器和带通滤波器3种: 按照电路工作原理又可分为 ...

  4. 均值滤波计算_图像处理之低通滤波

    在图像处理或者计算机视觉应用中,在正式对图像进行分析处理前一般需要一个预处理的过程.预处理是对图像作一些诸如降维.降噪的操作,主要是为后续处理提供一个体积合适的.只包含所需信息的图像.这里通常会用到一 ...

  5. OpenCV(图像处理)-基于python-滤波器(低通、高通滤波器的使用方法)

    1.概念介绍 2. 图像卷积 filter2D() 3. 低通滤波器 3.1 方盒滤波和均值滤波 boxFilter() blur() 3.2 高斯滤波(高斯噪音) 3.3 中值滤波(胡椒噪音) 3. ...

  6. 分享matlab程序之——滤波器篇(高通,低通)

    快毕业了,把自己写的现成的matlab函数分享给有需要的人,由于个人水平有限,写的不好请见谅,愿意拍砖的尽管拍好了.目前还不考虑读博,所以写的程序仍了可惜,所以就拿出来分享.好了不废话了,开始正题. ...

  7. 指数高通滤波器代码_分享matlab程序之——滤波器篇(高通,低通)

    快毕业了,把自己写的现成的matlab函数分享给有需要的人,由于个人水平有限,写的不好请见谅,愿意拍砖的尽管拍好了.目前还不考虑读博,所以写的程序仍了可惜,所以就拿出来分享.好了不废话了,开始正题. ...

  8. 详解OpenCV卷积滤波之边缘处理与锚定输出

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 概述 OpenCV在使用卷积进行图像处 ...

  9. c++ 高通、低通、带通滤波器_射频/微波滤波器

    滤波器的基础是谐振电路,只要能构成谐振的电路组合就可以实现滤波器.滤波器有四个基本原型,低通.带通.带阻.高通.实现滤波器就是实现相应的谐振系统.纪总参数就是电感.电容,分布参数就是各种射频/微波传输 ...

最新文章

  1. 敏捷开发中的故事点到底是什么?如何预估故事点?
  2. 微信小程序将页面按钮悬浮固定在底部
  3. PHP require和include的区别
  4. 使用mysqldump备份
  5. RK3308(1)---产品规格
  6. JavaScript 详解:为什么写好的代码非常重要
  7. 可以势利,不可以小人
  8. Dbutils常见方法
  9. vm虚拟机的安装使用装系统有序列号
  10. 杰里之一拖八烧写器版本更新:1TO8_V3.0.25【篇】
  11. 王者荣耀android换ios,王者荣耀安卓转ios教程攻略
  12. 无线射频专题《射频信号,接收灵敏度与接收信号强度指示》
  13. α波、β波、θ波和δ波
  14. 应用NMOS和晶体三极管作为基本开关管的相关知识
  15. python对整数进行因数分解_浅谈将一个正整数分解质因数的逻辑思维和Python开发设计...
  16. centos c++ mysql_腾讯云Linux CentOS C++连接MySQL
  17. 幽默笑话,隔壁的长舌妇,木子家原创
  18. 其他网页可以使用,但百度首页打不开,百度搜索无法使用,怎么办
  19. iOS第三方-Masonry使用技巧
  20. 阿里JAVA开发手册(泰山版)

热门文章

  1. 推送通知_手机总是收到烦人的推送,教你几招,彻底摆脱无用通知
  2. shell softech 面料_跨越三分之一个世纪的软壳神话
  3. 雷电2接口_地表最强?代替电脑的所有接口,雷电3或有望一统接口江湖
  4. 无头结点单链表的逆置_单链表的增删查 逆置 倒数第k个节点等问题
  5. memcache php windows,windows系统下安装memcache
  6. 如何使用 DSL 实现 DDD 的快速落地
  7. 再见,xShell,自己用Java撸一个Web版的,网友直呼:666
  8. 大量的 TIME_WAIT 状态 TCP 连接,对业务有什么影响?
  9. 一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
  10. 听过TB、PB级大数据,ZB级的大数据探索与应用实践是怎么样的?【附PPT】