2016-03-05 12:45:16 u010899190 阅读数 779
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4255 人正在学习 去看看 贾志刚

主界面
主界面

原图
原图

方框滤波

均值滤波

高斯滤波

中值滤波

双边滤波

图像处理之滤波1代码

2016-08-30 23:30:47 q6324266 阅读数 5167
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4255 人正在学习 去看看 贾志刚

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

1、滤波(或者叫相关)

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

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



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

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

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

滤波步骤:

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


滤波后的图像大小不变。



2、卷积

卷积的原理与滤波类似。但是卷积却有着细小的差别。
卷积操作也是卷积核与图像对应位置的乘积和。但是卷积操作在做乘积之前,需要先将卷积核翻转180度,之后再做乘积。

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

由于卷积操作会导致图像变小(损失图像边缘),所以为了保证卷积后图像大小与原图一致,经常的一种做法是人为的在卷积操作之前对图像边缘进行填充。

最后,关于卷积后图像尺寸的计算:假设原始图像为M*M,卷积核大小为N*N,边缘填充像素个数为pad,步长为stride。则卷积后图像的尺寸变为:m =(M-N+2*pad)/sride+1。

2012-11-16 12:44:58 tongfy0000 阅读数 2339
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4255 人正在学习 去看看 贾志刚

图像处理中的滤波器设计

在傅里叶变换中,低频决定图像再平滑区域中总体灰度级的显示,而高频决定图像细节部分。是低频通过而使高频衰减的滤波器称为“低通滤波器”;具有相反特性的滤波器称为“高通滤波器”。被低通滤波器的处理的图像比原始图像少一些尖锐的细节,因为高频部分已经衰减。同样,被高通滤波的图像在平滑区域中将减少一些灰度级的变化并突出过渡(如边缘)灰度级的细节部分。

 

低通滤波器

         在灰度连续变化的图象中,如果出现了与相邻象素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。

什么是平滑(smoothing)?如下面两幅图所示:可以看到,左图比右图柔和一些(也模糊一些)。将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度,就能实现下面的效果。就像和面一样,先在中间加点水,然后不断把周围的面和进来,搅拌几次,面就均匀了。这就是平滑。

原图

经过平滑处理后的图

 

滤波器(模板、核、掩模、窗口)的概念:为了方便地叙述上面所说的“将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度”这一操作,我们采用如下的表示方法:

 

1/9 [1 1 1; 1 1 1; 1 1 ]

中间的点表示中心元素,即,用哪个元素做为处理后的元素。

 

中值滤波器

中值滤波也是一种典型的低通滤波器,它的目的是保护图象边缘的同时去除噪声。所谓中值滤波,是指把以某点(x,y)为中心的小窗口内的所有象素的灰度按从大到小的顺序排列,将中间值作为(x,y)处的灰度值(若窗口中有偶数个象素,则取两个中间值的平均)。中值滤波是如何去除噪声的呢?举个例子就很容易明白了。

原图

处理后的图

0  0  0  0  0  0  0

0         0  0  0  0  0  0

0  0  1  1  1  0  0

0  0  1  6  1  0  0

0  0  1  1  1  0  0

0  0  0  0  0  0  0

0  0  0  0  0  0  0

1         0  0  0  0  0  0

0  0  1  1  1  0  0

0  0  1  1  1  0  0

0  0  1  1  1  0  0

0  0  0  0  0  0  0

图中数字代表该处的灰度。可以看出原图中间的6和周围的灰度相差很大,是一个噪声点。经过3×1窗口(即水平3个象素取中间值)的中值滤波,得到右边那幅图,可以看出,噪声点被去除了。

 

均值滤波器

         又称Box滤波器。

高斯滤波

         所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小。最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。

高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的有效使用.高斯函数具有五个十分重要的性质,它们是:

1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的.一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向

2)高斯函数是单值函数.这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的.这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像素点仍然有很大作用,则平滑运算会使图像失真.

3)高斯函数的付立叶变换频谱是单瓣的.正如下面所示,这一性质是高斯函数付立叶变换等于高斯函数本身这一事实的直接推论.图像常被不希望的高频信号所污染(噪声和细纹理).而所希望的图像特征(如边缘),既含有低频分量,又含有高频分量.高斯函数付立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需信号.

4)高斯滤波器宽度(决定着平滑程度)是由参数σ表征的,而且σ和平滑程度的关系是非常简单的.σ越大,高斯滤波器的频带就越宽,平滑程度就越好.通过调节平滑程度参数σ,可在图像特征过分模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷.

5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现.二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积.因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长.

 

滤波器比较

下面将中值滤波和上面介绍的两种平滑模板作个比较,看看中值滤波有什么特点。我们以一维模板为例,只考虑水平方向,大小为3×1(宽×高)。Box模板为1/3 [1 1 1],高斯模板为1/4 [1 2 1]。

先考察第一幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

0  0  0   1   1  1

0  0  1/3 2/3  1  1

0  0  1/4 3/4  1  1

0  0  0   1   1  1

 0   1/3 2/3  1

 1/9 1/3 2/3  8/9

 1/12 1/3 2/3 11/12

 0 1/3 2/3   1

0   1/4 3/4   1

1/12 1/3 2/3 11/12

1/16 5/16 11/16 15/16

0   1/4 3/4   1

0         0  1   1

0          1/3 2/3 1

0         1/4 3/4 1

0  0   1  1

从原图中不难看出左边区域灰度值低,右边区域灰度值高,中间有一条明显的边界,这一类图象称之为“step”(就象灰度上了个台阶)。应用平滑模板后,图象平滑了,但是也使边界模糊了。应用中值滤波,就能很好地保持原来的边界。所以说,中值滤波的特点是保护图象边缘的同时去除噪声。

 

再看第二幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

不难看出,原图中有很多噪声点(灰度为正代表灰度值高的点,灰度为负代表灰度值低的点),而且是杂乱无章,随机分布的。这也是一类很典型的图,称之为高斯噪声。经过Box平滑,噪声的程度有所下降。Gauss模板对付高斯噪声非常有效。而中值滤波对于高斯噪声则无能为力。

 

最后看第三幅图:

原图

Box模板处理后

Gauss模板处理后

经中值滤波处理后

1 2 10 2 1

1 3 11 3 1

1 2 10 2 1

13/3 14/3 13/3

5   17/3  5

13/3 14/3  13/3

15/4  6  15/4

9/2   7  9/2

15/4  6  15/4

2   2   2

3   3   3

2   2   2

从原图中不难看出,中间的灰度要比两边高许多。这也是一类很典型的图,称之为脉冲 (impulse)。可见,中值滤波对脉冲噪声非常有效

综合以上三类图,不难得出下面的结论:中值滤波容易去除孤立点/线的噪声,同时保持图象的边缘;它能很好的去除二值噪声,但对高斯噪声无能为力。要注意的是,当窗口内噪声点的个数大于窗口宽度的一半时,中值滤波的效果不好。这是很显然的。

 

 

 

 

 

0 0 0  0  0
0 0 1  0 0
0 1 1  1 0
0 0 1  0 0
0 0 0  0  0  你说这个点是不是边缘  如果不是边缘  他有什么作用  

 

所以说梯度算子在理论上是可以检测所有的边缘  但是:

并不是所有的边缘都有意义

所以会有其他算法或算子

每个算子或算法侧重点不同 意义也不同  

这主要看你的图像和你要达到的结果了

这个点明显的是个孤立点  一般我们处理图像时都会把它去掉  

所以这个时候八邻域 16邻域 效果就很好

2016-05-05 14:17:38 swj110119 阅读数 17526
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4255 人正在学习 去看看 贾志刚

一、学习心得:
在我学习基本滤波算法原理的时候,因为刚接触不是很理解算法具体是怎样实现的,不过在学习了图像形态学之后,发现滤波算法其实很简单。所以在此建议初学者在学习滤波算法之前,可以先学习一下图像形态学,会达到事半功倍的效果。

二、对于滤波功能的理解:
滤波算法,可以理解成一种过滤算法,就像我们筛选产品时,把次品去除掉,只留下合格的产品。而在图像处理中的滤波算法中,处理的对象是图像,除了去除掉图像中不想要的像素点的值(如去除噪声),还可以加强图像中我们需要研究一些内容(如边缘提取)。

三、滤波算法:
这里所讲的算法都是针对图像空间的滤波算法,其中模板,可以理解为图像形态学中的结构元素,是用来选取图像中的那些像素点被用来操作的。空间滤波根据其功能划分为平滑滤波和锐化滤波。平滑滤波:能减弱或者消除图像中高频率分量,但不影响低频率分量,在实际应用中可用来消除噪声。锐化滤波:与平滑滤波相反,能减弱或者消除图像中低频率分量,但不影响高频率分量,可使图像反差增加,边缘明显。实际应用可用于增强被模糊的细节或者目标的边缘。

空间增强滤波技术分类:
这里写图片描述

1、线性平滑滤波

(1)方框滤波:用一个像素的领域像素值之和作为滤波结果,邻域即模板所覆盖的图像区域,此时模板的所有系数都为1.
这里写图片描述

这里写图片描述

(2)邻域平均:是特殊大方框滤波,用一个像素的领域平均像素值作为滤波结果,即a为第一种情。
这里写图片描述

其中N(x,y)为模板岁覆盖的图像的区域,n为模板的尺寸。

(3)加权平均:此时的模板系数不是1,而是具体的系数。一般认为距离模板中心的像素应对滤波结果有较大的贡献,所以可将接近模板中心的系数取得比模板周边的系数。
这里写图片描述

(4)高斯平均:是一种特殊的加权平均,只不过模板中的系数由高斯分布来确定的。

2、线性锐化滤波

(1)拉普拉斯算子
拉普拉斯算子是一种各向同性的二阶微分算子,利用微分系数来确定模板系数,然后再与图像进行卷积运算,从而实现锐化滤波。

根据拉普拉斯定义:
这里写图片描述
两个分别沿X和Y方向的二阶偏导均可借助差分计算:
这里写图片描述
合并为:
这里写图片描述

当模板为4-邻域时 当模板为8-邻域时

这里写图片描述 这里写图片描述

  以上两种模板的系数之和为0,这是为了使经过模板运算的图像的均值不变。拉普拉斯算子增强了图像中的灰度不连续区域,而减弱了图像中灰度值缓慢变化区域对比度,将这样的结果叠加到原始图像中,就可以得到瑞华后的额图像。

(2)高频提升滤波
图像的锐化效果可以通过叠加图像的微分结果得到,也可以通过减除图像积分结果得到。
设原始图像为f(x,y),平滑后的图像为g(x,y):

非锐化掩模:h(x,y) = f(x,y)-g(x,y)

锐化图像:{ f(x,y)- g(x,y) } + f(x,y)

高频提升滤波:把院士图形乘以一个放大系数A,再减去平滑图像

这里写图片描述
可转化为:
这里写图片描述
当A=1时,为非锐化掩模;
当A=2时,为非锐化掩模化。

3、非线性平滑滤波

(1)中值滤波:对模板下对应的像素值进行升序排序,选取中间值作为结果。
这里写图片描述
(2)与中值滤波类似的,还有最大值、最小值、中点滤波
这里写图片描述

以上四种滤波也称之为百分比滤波,百分比滤波基于模板的排序来工作,又叫作序统计滤波。

2017-10-30 09:38:54 dugudaibo 阅读数 1049
  • OpenCV3.2 Java图像处理视频学习教程

    OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java OpenCV图像处理部分内容,包括Mat对象使用、图像读写、 基于常用核心API讲述基本原理、使用方法、参数、代码演示、图像处理思路与流程讲授。主要内容包括opencv像素操作、滤波、边缘提取、直线与圆检测、形态学操作与分水岭、图像金子塔融合重建、多尺度模板匹配、opencv人脸检测、OpenCV跟Tomcat使用实现服务器端图像处理服务。

    4255 人正在学习 去看看 贾志刚
转载于:http://blog.csdn.net/haoji007/article/details/53911940

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

1、滤波

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

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



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

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

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

滤波步骤:

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


滤波后的图像大小不变。



2、卷积

卷积的原理与滤波类似。但是卷积却有着细小的差别。
卷积操作也是卷积核与图像对应位置的乘积和。但是卷积操作在做乘积之前,需要先将卷积核翻转180度,之后再做乘积。

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

由于卷积操作会导致图像变小(损失图像边缘),所以为了保证卷积后图像大小与原图一致,经常的一种做法是人为的在卷积操作之前对图像边缘进行填充。

最后,关于卷积后图像尺寸的计算:假设原始图像为M*M,卷积核大小为N*N,边缘填充像素个数为pad,步长为stride。则卷积后图像的尺寸变为:m =(M-N+2*pad)/sride+1。

图像处理 均值滤波

阅读数 5001

博文 来自: weixin_41907390
没有更多推荐了,返回首页