图像处理软件包的设计算法
2010-08-06范秋生
范秋生
(黄冈职业技术学院 黄冈 438002)
一、 引言
图像对于我们并不陌生,它是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视觉的实体。图像包含有大量的信息,因而存储和处理图像都不是一件简单的工作。但是,随着计算机的诞生和发展,人们有希望将对图像的存储和处理这一繁重的工作借助于计算机来实现,从而减轻人们的工作压力。
二、 图像处理的意义
人们经常要对图像进行各种加工以改善图像的视觉效果;或对图像进行压缩编码以减少对其所需存储空间或传输时间的要求;利用图像处理也能够修改图形,改善图像质量,或是从图像中提起有效信息,还有利用图像处理可以对图像进行体积压缩,便于传输和保存;同时采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。所以,推动图像处理技术也有了快速的发展,各种图像处理软件也随处可见。
三、 图像处理算法
1、 旋转算法
一般的图像旋转以图像的中心为原点,旋转一定得角度。如图所示,点(x0,y0)经过旋转 θ 后坐标变成(x1,y1)。
在旋转前:
旋转后:
写成矩阵的表达式为:
其逆运算如下:
如果图像是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后再平移回新的坐标原点,假定旋转前的图像中心坐标是(a,b),旋转后的中心坐标是(c,d),则旋转变换矩阵表达式为:
因此:
在上面的转换公式中,令
其 中 a=lWidth-1/2,b=lHeight-1/2,c=lNewWidth-1/2,d=lNewHeight-1/2,lWidth和lHeight分别为旋转前图像的宽度和高度,lNewWidth和lNewHeight分别为旋转后图像的宽度和高度。
则可以推导出以图像中心为旋转中心点的图像旋转坐标[6]即公式为:
在实现左右方向的旋转时,我们选取角度θ的不同值,使得坐标值得以改变,以实现图像最终在方向上的旋转。
2、 压缩算法
(1)JPEG的压缩算法
JPEG压缩算法可以用失真的压缩方式来处理图像,但失真的程度却是肉眼所无法辨认的。这也就是为什么JPEG会有如此满意的压缩比例的原因。下面先来讨论JPEG基本压缩法。
JPEG压缩过程
JPEG压缩分四个步骤实现:
⑴颜色模式转换及采样;
⑵DCT变换;
⑶量化;
⑷编码。
图3-1 JPEG压缩过程
①颜色模式转换及采样
RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。通过下列计算公式可完成数据转换。
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。
②DCT变换
DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。
DCT变换公式:
x,y代表图像数据矩阵内某个数值的坐标位置
f(x,y)代表图像数据矩阵内的数个数值
u,v代表DCT变换后矩阵内某个数值的坐标位置
F(u,v)代表DCT变换后矩阵内的某个数值
u=0 且 v=0 c(u)c(v)=1/1.414
u>0 或 v>0 c(u)c(v)=1
经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。
③量化
图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。
④编码
Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。
实现上述四个步骤,即完成一幅图像的JPEG压缩。
四、 结束语
目前,针对图像处理技术的软件己在市场上亮相,对于图像处理的初学者和算法研究人员开发的学习实验用的系统已成为专业人士的主要研究课题。希望我所做的探索可为将来的研究开发提供一些思路和参考,可有所借鉴。
[1]熊江.面向对象的框架设计[J].西南师范大学学报.2003,28(3):249~252
[2]朱彦军.BMP位图文件的存储格式[J].电脑编程技巧与维护.2003,11:56~59
[3]陶胜.JPEG图像文件格式分析及显示[J].电脑编程技巧与维护.2001,7:98~100