您的位置:首页 > 其它

数字图像处理-算法学习

2014-12-17 17:40 405 查看
一.点运算(像素变换)

1.线性变换

原理:f=a*F+b; 效果:典型的有反色的作用。

2.阀值运算

原理:若F<X时,f=0;若F>X时 f=255; 效果:草图的感觉

3.窗口运算

原理:类似阀值运算,不过分三段,中间的一段不变;效果:能去掉背景

4.灰度拉伸

原理:若x<x1 则f=y1/x1;若x1<x<x2,则f=(y2-y1)/(x2-x1)*(x-x1)+y1;若x>x2 则f=(255-y2)/(255-x2)*(x-x2)+y2;

效果:将x1---x2的像素拉伸 到y1---y2段,如图像较暗,可将图像拉伸到较亮处。。

5.灰度均衡

原理:对灰度级像素点数积分然后除以图像面积,然后归一化乘以255

效果:将直方图平均化,使图像对比度大大提高

二.几何变换(坐标变换)

1.图像的平移

2.图像的镜像

3.图像的转置

4.图像的旋转

原理:分三步走,第一步 将原点移动到旋转中心位置(原点在图像左上角),第二步 旋转 y=r*sin(A-B),x=r*cos(A-B),第三步 将中心点重新移回 到新的原点上(新的图像的左上角)

三次矩阵乘积

x0=x1*cos(A)+y1*sin(A)-c*cos(A)-d*sin(A)+a

y0=-x1*sin(A)+y1*cos(A)+c*sin(A)-d*cos(A)+b

(a,b)原中心点,(c,d)新中心点

5,图像的缩放

x0=x1/fx;

-----

6.插值法

(一)最临近插值 就是+0.5

(二)双线插值法(模板?!)

f(x,0)=f(0,0)+x*(f(1,0)-f(0,0))

f(x,1)=f(0,1)+x*(f(1,1)-f(0,1))

f(x,y)=f(x,0)+y*(f(x,1)-f(x,0))

这里有个形象的几何图可以看出来,不便画了。

对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非 负整数,u、v为[0,1)区间的浮点数,则这个像素得值 f(i+u,j+v) 可由原图像中坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:

    f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)

其中f(i,j)表示源图像(i,j)处的的像素值,以此类推

这就是双线性内插值法。双线性内插值法计算量大,但缩放后图像质量高,不会出现像素值不连续的的情况。由于双线性插值具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊

三次卷积法

最邻近插值(近邻取样法)、双线性内插值、三次卷积法 等插值算法对于旋转变换、错切变换、一般线性变换 和 非线性变换 都适用。

三.图像的增强(灰度的修正)

1.图像的平滑

(一).模板操作,当前点的像素近似等于周围几个像素点运算后相加(右边,下边都得相应减模板的宽度,高度各减一,这里的保留相等)常用的模板有高斯模 板(1,2,1,2,4,2,1,2,1)*(1/16) ,(0,1,0,1,1,1,0,1,0)*(1/4)

(二).中值滤波,采用模板中中间值作为当前点的灰度;它不影响阶跃函数,斜坡函数;它可以有效的消除单脉冲,双脉冲,使三角函数的顶尖平滑。

2.图像的锐化

(一).梯度锐化

高等数学中梯度:分别对x,y进行求导后的方向向量

这里数字图像要用的就是该方向向量的模值。这里简化等于|f(x,y)-f(x+1,y+1)|+|f(x+1,y)-f(x,y+1)|

明显这个值在图像变化弱的地方小,而图像变化明显的地方大,达到锐化的效果,该算法也可用在边缘检测当中

倒数:临近2值相减后,除以x变化值 Vf(x,y)=(f(x+1,y)-f(x,y))/1

积分:for循环相加吧。

(二).拉普拉斯锐化(实质是模板运算)

分别对x,y分别求二阶导后相加

二阶导:一阶导的递归...

(三).高通滤波器(理想高通滤波器,巴特沃夫高通滤波器,指数高通滤波器,梯形高通滤波器)

原理:都是先变换到频域后,各种运算后的值。

3.伪彩色编码

原理:给灰度图上色。系统会给出很多伪彩色编码表可供选择

流程:1.使用彩色编码表修改调色板,2.重新设置图像调色板

四.图像腐蚀,膨胀,和细化

1.图像的腐蚀

原理:{x|S[x]<=X}<=这里是包含的意思

2.图像的膨胀

原理:{S[x]|S[x]交集x 不等于空}

3.开运算,闭运算

(开)先腐蚀后膨胀:去掉凸角;

(闭)先膨胀后腐蚀:填补凹角;

4.击中/击不中变换

两个模板p1,p2

p1被平移进去被包含,而p2平移后和图像没有交集。

5.细化(火从两边烧起)

1.边缘是连续的

2.边缘线移动的速度是相同

五.图像边缘检测与提取及轮廓跟踪

1.边缘检测

概念:基元,边缘,阶跃性边缘,屋顶性边缘,----

原理:用卷积多

2.Hough变换

将线,圆等变换成点,利用数学公式

3.轮廓提取

二值轮廓提取法:以一点为中心,四周八点都有颜色,则将该点置255;

4.轮廓跟踪

按一定的探索路线进行。

5.种子填充

边界填充算法,扫描线种子填充算法

六.图像的分析

1.图象的分割

阀值法,区域法(兼并法)。

2.投影法

水平投影,垂直投影。(一般只对二值图像有用,水平上每行不为零的像素个数----)

3.差影法

图像加法:图像叠加

图像减法:可以检测同一场景物体的运动(差影法)

图像乘法:可以用掩膜图乘以图像已达到遮住图像某一部分的效果

图像除法:可以产生基于颜色和光谱的比率图

4.图像的匹配

模板匹配法:图像部分与模板的相关性

幅度排序匹配法:看像素相减后的值的和是否大于某值

分层搜索排序法:图像由粗化到细化的一一对比(先确定大致位置,后逐步细化。。)。

七.图像的复原

图像复原:确定噪声模型后,进行的逆向操作。

图像增强:不用确定噪声模型。

图像复原分为线性和非线性代数方法

图像复原需要知道点扩展函数(H函数)和噪声模型

基本函数:G(u,v)=NMH(u,v)*F(u,v)+N(u,v);G噪声图像,F原图像,H(点扩展函数),N(噪声)

1.逆滤波器方法

原理: SG=F*H(都要经过傅里叶变换后相乘,再逆傅里叶变换)

效果:高性噪比时,效果好,但对复原的图像没有进行约束

2.最小二乘类约束复原

对复原的图像进行约束,||Qf||为约束因子(最小效果最好)

(一)维纳滤波方法

原理:一类似逆滤波器方法所使用的函数式。

效果:满足平稳,线性的随机噪声的模型效果好

(二)约束最小方波

原理:同上

效果:不详

3.非线性复原方式

以上都是基于线性的方法。

最大后验复原:对源图像的估计

最大熵复原:根据图像熵和噪声熵得出。效果:使复原的图像比较平滑。

投影复原:分解N多的函数再计算。

Monte Carlo复原方法:将图像分成很多细胞,灰度为带有能量的颗粒,逐步将颗粒放于细胞中(假设第一颗放于X处,而后形成初步图像,后面的颗粒是否放入XX位置,看是否满足建立在初步图像基础之上的条件),计算速度快,在噪声小效果非常好。

几何校正:根据原图和现图中像素的位置建立函数关系。(这里边没有噪声,只有位移的改变)

盲目图像复原:在没有图像退化的先验知识的前提下,直接测量法(通过图像某些特征,了解退化),间接测量法(必须没有噪声,才能用)。

4.点扩展函数(PSF)(退化函数的空间描述)

均匀直线运动模糊下的PSF

聚焦系统下的PSF

如果PSF先前不知道,则需要手段去获取(通过测试靶,图像识别系统,退化图像频谱确定等---)

5.图像的噪声系统

外部噪声(天气)。内部噪声(电,光)

平稳,非平稳(其统计特性是否随时间变化)

加性噪声,乘性噪声

九.图像的压缩编码(压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息(可推知的))

一般分为:无损压缩与有损压缩

压缩编码的方法有很多,主要分成以下四大类:(1)象素编码;(2)预测编码;(3)变换编码;(4)其它方法。

所谓象素编码是指,编码时对每个象素单独处理,不考虑象素之间的相关性。在象素编码中常用的几种方法有:(1)脉冲编码调制(Pulse Code Modulation,简称PCM);(2)熵编码(Entropy Coding);(3)行程编码(Run Length Coding);(4)位平面编码(Bit Plane Coding)。其中我们要介绍的是熵编码中的哈夫曼(Huffman)编码和行程编码(以读取.PCX文件为例)。

所谓预测编码是指,去除相邻象素之间的相关性和冗余性,只对新的信息进行编码。举个简单的例子,因为象素的灰度是连续的,所以在一片区域中,相邻象素之间灰度值的差别可能很小。如果我们只记录第一个象素的灰度,其它象素的灰度都用它与前一个象素灰度之差来表示,就能起到压缩的目的。如248,2,1,0,1,3,实际上这6个象素的灰度是248,250,251,251,252,255。表示250需要8个比特,而表示2只需要两个比特,这样就实现了压缩。

常用的预测编码有Δ调制(Delta Modulation,简称DM);微分预测编码(Differential Pulse Code Modulation,DPCM),具体的细节在此就不详述了。

所谓变换编码是指,将给定的图象变换到另一个数据域(如频域)上,使得大量的信息能用较少的数据来表示,从而达到压缩的目的。变换编码有很多,如(1)离散傅立叶变换(Discrete Fourier Transform,简称DFT);(2)离散余弦变换(Discrete Cosine Transform,简称DCT);(3)离散哈达玛变换(Discrete Hadamard Transform,简称DHT)。

其它的编码方法也有很多,如混合编码(Hybird Coding)、矢量量化(Vector Quantize,VQ) 、LZW算法。在这里,我们只介绍LZW算法的大体思想。

值得注意的是,近些年来出现了很多新的压缩编码方法,如使用人工神经元网络(Artificial Neural Network,简称ANN)的压缩编码算法、分形(Fractl)、小波(Wavelet) 、基于对象(Object Based)的压缩编码算法、基于模型(Model –Based)的压缩编码算法(应用在MPEG4及未来的视频压缩编码标准中)。这些都超出了本书的范围。

行程编码(Run Length Coding)的原理也很简单:将一行中颜色值相同的相邻象素用一个计数值和该颜色值来代替然而,该算法也导致了一个致命弱点,如果图象中每两个相邻点的颜色都不同,用这种算法不但不能压缩,反而数据量增加一倍。所以现在单纯采用行程编码的压缩算法用得并不多,PCX文件(大面积非连续色调的图像)算是其中的一种。

LZW把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符串,LZW是无损的。GIF文件采用了这种压缩算法

JPEG处理的颜色只有真彩和灰度图.HTML语法中选用的图象格式之一就是JPEG(另一种是GIF)

jpeg的编码编码流程

[转载]数字图像处理-算法学习?

哈弗曼,香浓,行程,LZW,JPEG等

十、频域变换(优点之一就是将复杂的卷积变换转化为简单相乘运算)

满足正交,完备(这个函数既要有奇函数,又要有偶函数(任意的奇函数相加还是奇函数))的矩阵才能进行图像分析

傅里叶变换

离散余弦变换

沃尔什变换

哈达吗变换

哈尔变换

十一、卷积

z(t)=x(t)*y(t)= ∫x(m)y(t-m)dm.(当前信号输入后的对应输出和以前的一部分残留的信号是相关的)

卷积可以使图像变模糊(平滑)。

相关运算是将摸板当权重矩阵做加权平均,而卷积与相关不同的是需要将摸板沿中心反叠后再加权平均.当摸板对称的时候,两者完全相同.

卷积很大的一个作用就是滤波(平滑),另外一个就是针对图像的某个物体进行定位

转载自:http://blog.163.com/guohuanhuan_cool@126/blog/static/16761423820116511252848/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: