参考自:http://blog.csdn.net/yangtrees/article/details/8740933 等

1.图像卷积(模板)

(1).使用模板处理图像相关概念:

模板:矩阵方块,其数学含义是一种卷积运算。

卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相 乘,所有乘积之和作为区域中心像素的新值。
     卷积核:卷积时使用到的权用一个矩阵表示,该矩阵是一个权矩阵。
     卷积示例:
              3 * 3 的像素区域R与卷积核G的卷积运算:
              R5(中心像素)=R1G1 + R2G2 + R3G3 + R4G4 + R5G5 + R6G6 + R7G7 + R8G8 + R9G9
            

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

(3).常用模板:


我们来看一下一维卷积的概念.
连续空间的卷积定义:  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 这就是线性系统. 表示一个线性系统可以用积分的形式

,

就是f(t,x)表示的是A B之类的线性系数.看上去很像卷积呀,对,如果f(t,x) = F(t-x) 不就是了吗.从f(t,x)变成F(t-x)实际上是说明f(t,x)是个线性移不变,就是说变量的差不变化的时候, 那么函数的值不变化. 实际上说明一个事情就是说线性移不变系统的输出可以通过输入和表示系统线性特征的函数卷积得到.

卷积示例:

A =
     1     3     3     5     2
     2     4     1     1     3
     3     5     5     2     4
     4     4     2     3     1
     5     6     3     4     2

G =

1     2     3
     4     5     6
     7     8     9

首先对卷积模板G旋转180°。matlab代码:rot90(G,2) 即 将a逆时针转2次90度。

依次对full,same,value进行解释:

K>> B=conv2(A,G,'full'); OR B=conv2(A,G);
B =
     1     5    12    20    21    19     6
     6    25    48    68    59    49    21
    18    66   114   146   127    96    48
    30    91   142   133   107    76    54
    42   111   184   173   139    89    48
    48   109   154   140    95    69    21
    35    82   114   106    73    52    18

K>> B=conv2(A,G,'same')
B =
    25    48    68    59    49
    66   114   146   127    96
    91   142   133   107    76
   111   184   173   139    89
   109   154   140    95    69

K>> B=conv2(A,G,'valid')

B =
   114   146   127
   142   133   107
   184   173   139

2.图像滤波

(1)图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接响到后续图像处理和分析的有效性和可靠性。(滤波就是要去除没用的信息,保留有用的信息,可能是低频,也可能是高频)

(2)滤波的目的有两个:一是抽出对象的特征作为图像识别的特征模式;  另一个是为适应图像处理的要求,消除图像数字化时所混入的噪声。

对滤波处理的要求有两条:一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。

(3)图像的滤波方法:

(一)图像的滤波方法很多,主要可以分为频率域法和空间域法两大类。频率域法的处理是在图像的某种变换域内,对图像的变换系数值进行运算,然后通过逆变换获得增强图像。这是一种间接的图像滤波方法。空间滤波方法是一类直接的滤波方法,它在处理图像时直接对图像灰度作运算。

<1>频率域滤波:是将图像从空间或时间域转换到频率域,再利用变换系数反映某些图像特征的性质进行图像滤波的方法。傅立叶变换是一种常用的变换。在傅立叶变换域,频谱的直流分量正比于图像的平均亮度,噪声对应于频率较高的区域,图像实体位于频率较低的区域。图像在变换具有的这些内在特性可被用于图像滤波。可以构造一个低通滤波器,使低频分量顺利通过而有效地阻于高频分量,即可滤除图像的噪声,再经过反变换来取得平滑的图像。

低通的数学表达式如下式所示:
                       

式中F (u, v)一含有噪声的原图像的傅立叶变换;
          H (u, v)一为传递函数,也称转移函数(即低通滤波器);
          G (u, v)一为经低通滤波后输出图像的傅立叶变换。
          H滤波滤去高频成分,而低频信息基本无损失地通过。滤波后,经傅立叶变换反变换可得平滑图像,即
          选择适当的传递函数H (u, v),对频率域低通滤波关系重大。常用的传递函数有梯形函数、指数函数、巴特沃思函数等。
          频域常用的几种低通滤波器为理想低通滤波器(Ideal  circular Iow-passfilter)、巴特沃思(Butterworth)低通滤波器、指数低通滤波器及梯形低通滤波器。这些低通滤波器,都能在图像内有噪声干扰成分时起到改善的作用。
      <2>常用的平面空间域滤波法有两类:

一类是拟合图像的方法,包括n阶多项式拟合、离散正交多项式拟合、二次曲面拟合等多种方法;

另一类是平滑图像的方法,包括领域平均法、中值滤波法、梯度倒数加权法、选择式掩模法等。

(二)按频率高低

<1>高通滤波:边缘提取与增强。边缘区域的灰度变换加大,也就是频率较高。所以,对于高通滤波,边缘部分将被保留,非边缘部分将被过滤;

<2>低通滤波:边缘平滑,边缘区域将被平滑过渡。

附: 高斯滤波:高斯滤波是一种线性平滑滤波,即低通滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由本身和邻域内的其他像素值经过加权平均后得到。高斯平滑滤波器对于抑制服从正态分布的噪声非常有效。3×3的掩模如下:

×1/16

从结构化掩模中可以看到,处于掩模中心的位置比其他任何像素的权值都大,因此在均值计算中给定的这一像素显得更为重要。而距离掩模中心较远的像素就显得不太重要,这样做是为了减小平滑处理中的模糊。

(三)线性与非线性滤波

<1>线性滤波:线性滤波器的原始数据与滤波结果是一种算术运算,即用加减乘除等运算实现,如(1)均值滤波器(模板内像素灰度值的平均值)、(2)高斯滤波器(高斯加权平均值)等。由于线性滤波器是算术运算,有固定的模板,因此滤波器的转移函数是可以确定并且是唯一的(转移函数即模板的傅里叶变换)。

         <2>非线性滤波:非线性滤波器的原始数据与滤波结果是一种逻辑关系,即用逻辑运算实现,如最大值滤波器、最小值滤波器、中值滤波器等,是通过比较一定邻域内的灰度值大小来实现的,没有固定的模板,因而也就没有特定的转移函数(因为没有模板作傅里叶变换),另外,膨胀和腐蚀也是通过最大值、最小值滤波器实现的。五种常见的非线性滤波算子,这五种滤波算子对不同的图像都会有不同的作用,最常用的是中值滤波,因为它的效果最好且信息损失的最少。
       (1).极大值滤波            极大值滤波就是选取像素点领域的最大值作为改点的像素值,有效率去了灰度值比较低的噪声,也可作为形态学里面的膨胀操作。            极大值滤波可以表示为: Maximum(A)=max[A(x+i,y+j)]      (x,y)属于M            注:(x+i,y+j)是定义在图像上的坐标,(i,j)是定义在模板M上的坐标。M即为运算的模板。       (2).极小值滤波(与极大值滤波相反)       (3).中点滤波            中点滤波常用于去除图像中的短尾噪声,例如高斯噪声和均匀分布噪声。终点滤波器的输出时给定窗口内灰度的极大值和极小值的平均值;            Midpoint(A)=(max[A(x+i,y+j)]+min[A(x+i,y+j)])/2          (x,y)属于M            注:(x+i,y+j)是定义在图像上的坐标,(i,j)是定义在模板M上的坐标。M即为运算的模板。       (4).中值滤波            中值滤波可以消除图像中的长尾噪声,例如负指数噪声和椒盐噪声。在消除噪声时,中值滤波对图像噪声的模糊极小(受模板大小的影响),中值滤波实质上是用模板内所包括像素灰度的中值来取代模板中心像素的灰度。中值滤波在消除图像内椒盐噪声和保持图像的空域细节方面,其性能优于均值滤波。            Median(A)=Median[A(x+i,y+j)]              (x,y)属于M             注:(x+i,y+j)是定义在图像上的坐标,(i,j)是定义在模板M上的坐标。M即为运算的模板。       (5).加权中值滤波(中值滤波的改进)           加权中值滤波是在中值滤波的基础上加以改进,其性能在一定程度上优于中值滤波。           下面是自己在算法上的改进:以例子说明           若说选模板的大小为5,那么这个模板就唯一确定为:             1  1  5   1   1                1  1  5   1   1               5  5  5   5   5                1  1  5   1   1               1  1  5   1   1             上图中的数字表式改点像素在序列中出现的次数。然后根据模板平滑图像。实验证明该方法好于传统中值滤波。当然还有其他方法;

附:噪声(高斯噪声:是指噪声服从高斯分布,即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少,且这个规律服从高斯分布。高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以用线性滤波器滤除。椒盐噪声:类似把椒盐撒在图像上,因此得名,是一种在图像上出现很多白点或黑点的噪声,如电视里的雪花噪声等。椒盐噪声可以认为是一种逻辑噪声,用线性滤波器滤除的结果不好,一般采用中值滤波器滤波可以得到较好的结果。)

图像滤波相对比较容易理解,在这里就不一一作图说明了。

3.图像平滑

图像平滑 image smoothing: 压制、弱化或消除图像中的细节、突变、边缘和噪声,就是图像平滑化。图像平滑是对图像作低通滤波,可在空间域或频率域实现。空间域图像平滑方法主要用低通卷积滤波、中值滤波等;频率域图像平滑常用的低通滤波器有低通梯形滤波器、低通高斯滤波器、低通指数滤波器、巴特沃思低通滤波器等。

关系:

图像卷积:一种实现手段,不管是滤波还是别的什么,可以说是数学在图像处理的一种延伸。

图像滤波:一种图像处理方法,来实现不同目的。

图像平滑:实际上就是低通滤波。

尾话:转自http://blog.csdn.net/haoji007/article/details/53911940

图像处理中滤波(filtering)与卷积(convolution)的区别

图像处理中滤波和卷积是常用到的操作。很多人认为卷积就是滤波,两者并无区别,其实不然。两者在原理上相似,但是在实现的细节上存在一些区别。这篇博文主要叙述这两者之间的区别。

1、滤波

简单来说,滤波操作就是图像对应像素与掩膜(mask)的乘积之和。

比如有一张图片和一个掩膜,如下图:

那么像素(i,j)的滤波后结果可以根据以下公式计算:

其中G(i,j)是图片中(i,j)位置像素经过滤波后的像素值。

当掩膜中心m5位置移动到图像(i,j)像素位置时,图像(i,j)位置像素称为锚点。

滤波步骤:

  1. 对原始图像的边缘进行某种方式的填充(一般为0填充)。
  2. 将掩膜划过整幅图像,计算图像中每个像素点的滤波结果。
依照这个步骤,假设我们有一个二维矩阵I,掩膜M,则滤波的结果如下:

滤波后的图像大小不变。



2、卷积

卷积步骤:
  1. 180度翻转卷积核。
  2. 不做边界填充,直接对图像进行相应位置乘积和。
从以上步骤可以看出,如果卷积核不是中心对称的,那么卷积和滤波操作将会得到完全不一样的结果。另外,卷积操作会改变图像大小!


由于卷积操作会导致图像变小(损失图像边缘),所以为了保证卷积后图像大小与原图一致,经常的一种做法是人为的在卷积操作之前对图像边缘进行填充。
最后,关于卷积后图像尺寸的计算:假设原始图像为M*M,卷积核大小为N*N,边缘填充像素个数为pad,步长为stride。则卷积后图像的尺寸变为:m =(M-N+2*pad)/sride+1。

自我总结一下:

一、滤波其实也是对图像进行平滑操作,滤波后的图像与原图像大小相同。【适当的话,进行边界扩充,得到滤波后的效果会比没有进行边界扩充得到的效果好一些】。

二、卷积操作首先是将卷积模板进行旋转180度,之后进行卷积操作。其卷积后的结果与原图像大小不一致,如上文我自己整理的那样。

通俗理解图像处理基本概念——卷积,滤波,平滑相关推荐

  1. 图像处理基本概念——卷积,滤波,平滑

    /*今天师弟来问我,CV的书里到处都是卷积,滤波,平滑--这些概念到底是什么意思,有什么区别和联系,瞬间晕菜了,学了这么久CV,卷积,滤波,平滑--这些概念每天都念叨好几遍,可是心里也就只明白个大概的 ...

  2. 【深度学习】通俗理解什么是CNN卷积神经网络

    0 前言 卷积神经网络 – CNN 最擅长的就是图片的处理.它受到人类视觉神经系统的启发. CNN 有2大特点: 能够有效的将大数据量的图片降维成小数据量 能够有效的保留图片特征,符合图片处理的原则 ...

  3. 05卷积神经初探之(5.1计算机视觉基本概念 5.2图像处理常见概念)

    05.卷积神经初探 一.5-1 计算机视觉基本概念 二, 5-2 图像处理常见概念 转自慕课网,自我总结. 一.5-1 计算机视觉基本概念 今天介绍零基础入门pytorch中的pytorch加卷积神经 ...

  4. CNN笔记:通俗理解卷积神经网络

    通俗理解卷积神经网络(cs231n与5月dl班课程笔记) http://blog.csdn.net/v_july_v/article/details/51812459 1 前言 2012年我在北京组织 ...

  5. 通俗理解卷积神经网络(cs231n与5月dl班课程笔记)

    1 前言 2012年我在北京组织过8期machine learning读书会,那时"机器学习"非常火,很多人都对其抱有巨大的热情.当我2013年再次来到北京时,有一个词似乎比&qu ...

  6. 【转】通俗理解卷积神经网络(cs231n与5月dl班课程笔记)

    转载源地址:https://blog.csdn.net/v_JULY_v/article/details/51812459 通俗理解卷积神经网络(cs231n与5月dl班课程笔记) 1 前言 2012 ...

  7. CNN笔记:通俗理解卷积神经网络【转】

    本文转载自:https://blog.csdn.net/v_july_v/article/details/51812459 通俗理解卷积神经网络(cs231n与5月dl班课程笔记) 1 前言 2012 ...

  8. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

  9. 卷积滤波 英文_图像处理必备英文词汇

    Algebraic operation 代数运算 一种图像处理运算,包括两幅图像对应像素的和.差.积. 商. Aliasing 走样(混叠) 当图像象素间距和图像细节相比太大时产生的一种人工痕迹. A ...

最新文章

  1. AtlasControlToolkit.CascadingDropDownNameValue自定义用法
  2. 实现一个基于动态代理的 AOP
  3. mysql初始化很慢_mysql初始化报错
  4. 一文看懂哈夫曼树与哈夫曼编码
  5. 操作系统 非连续分配_操作系统中的连续和非连续内存分配
  6. MNews 1.9 – 干净的新闻自媒体博客wordpress主题
  7. linux下创建svn仓库及用户
  8. latex 基本用法(三)
  9. java 反射 main_java – 通过反射访问main方法中的局部变量
  10. 4.1 android 头像,微商抠图软件换头像app
  11. java offset函数的使用方法_js的offset是什么意思及使用详解
  12. Imagination发布开源项目:适配PowerVR IP的Vulkan驱动和编译器合入Mesa 3D 图形库
  13. 三维地图打造数、实融合底座
  14. 电脑怎么保存网页到桌面上使用
  15. 【睡觉中的阿狸!真的被萌到啦】
  16. 第五十一篇 前端之CSS内容
  17. Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例
  18. 够壕!支付宝新楼“蚂蚁Z空间”启用 网友:公司缺人吗
  19. 关于一些C语言代码优化的方法,我慷慨解囊了大家酌情收藏
  20. XAMPP的下载与安装

热门文章

  1. netty 通道配置接口定义
  2. 如何实现团队高效协作沟通?远程办公软件华为云WeLink高效沟通指南
  3. 表妹想学编程,我给她看了一张图,看完后她说还是算了吧,不学了
  4. python实现“艾宾浩斯”记忆曲线表
  5. google research
  6. 作为一名论文审稿人,如何写review?
  7. 计算机主板属于什么垃圾分类类别,充电宝属于什么垃圾?废弃充电宝如何垃圾分类...
  8. mac电脑垃圾清理 mac电脑垃圾桶清空的如何撤回
  9. Discounted Cumulative Gain(DCG)
  10. 丰田生产方式和TOC工序切换时间的解决