文档库 最新最全的文档下载
当前位置:文档库 › 基于C_的数字图像处理算法的分析研究_赵哲

基于C_的数字图像处理算法的分析研究_赵哲

科技信息

SCIENCE &TECHNOLOGY INFORMATION

2010年第7期0引言

随着数字技术的不断发展应用,生活中的许多信息都可以用数字

来进行存储,数字图像便是我们生活中最常见的数字技术的应用。将传统图像转换为数字图像最常见的是数码相机和图像扫描仪,与传统图像相比,数字图像具有存储时间长、质量不会下降、方便加工处理打印等优势。

数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。随着计算机的发展、数学的发展(特别是离散数学理论的创立和完善)、医学、人民生活等方面应用需求增长,数字图像处理技术迅速发展起来。

一般来讲,对图像进行处理(或加工、分析)的主要目的有三个方面:

(1)提高图像的视觉效果,如改变图像的亮度、对图片进行特效处理、几何变换等,以改善图像的视觉效果。

(2)提取图像中所包含的某些特征或特殊信息,这种信息通常用于识别系统、考勤系统等身份验证系统中。

(3)图像数据的变换、压缩,以便于图像的存储和网络中的传输。Windows 最常见的数字图像格式为BMP (bitmap 位图)格式,本文以该格式图像为例,来分析数字图像的点阵处理法。

1体会像素(Pixel )

位图图像又称点阵图像或者绘制图像,是由像素点进行不同的排列和染色构成的。我们若把位图图像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位“像素”(Pixel )。这种最小的图形的单元能在屏幕上显示通常是单个的染色点。越高位的像素,其拥有的色板也就越丰富,越能表达颜色的真实感。

一幅图片可以用一个二维数组a[x,y]来表示,其中x 和y 分别表示空间横坐标和纵坐标,数组中存放的是像素点的相关信息。在位图中,每一个像素点由ARGB 组成,其中A 为Alpha-图像通道,R 为Red 红色通道,G 为Green 绿色通道,B 为Blue 蓝色通道,这三个值的取值范围分别为0~255。

2

图像处理算法的研究

2.1

图像灰度化内存法运算

在数字图像算法中,往往需要把彩色图像转换为灰度图像,24位彩色图像每个像素用3个字节表示,每个字节对应着R,G,B 分量的亮度,当R,G,B 分量值不同时,图像表现为彩色图像,若R,G,B 分量值相同,则图像表示为灰度图像。

一般来说,转换成灰度图像有3种方式:

1)Gray(x,y)=[R(x,y)+G(x,y)+B(x,y)]/3

其中,Gray(x,y)为转换后(x,y)点的灰度值,此方法为最简单的灰度算法,但是,由于人眼对颜色的感知程度不同(参见图2.1),因此经过精密的计算,推出了第二种转换方式:

图2.1

人眼对颜色的感知程度

2)Gray(x,y)=0.299*R(x,y)+0.587*G(x,y)+0.114*B(x,y)从这个算法可以看出,绿色所占的比重最大。

3)Gray(x,y)=Max[R(x,y),G(x,y),B(x,y)]

也有一种流行的算法是取RGB 颜色中的最大值,作为图像的灰度值。

我们以第二种方法为例,基于C#语言中的内存处理法,写出算法的代码片段:

//定义位图矩形rect (代码略)//锁定位图像素(代码略)

//得到位图在内存当中的首地址

IntPtr p =myMap.Scan0;

//获取位图字节数bytes 定义位图数组rgbValues (代码略)//复制被锁定的位图像素值到该像素内

System.Runtime.InteropServices.Marshal.Copy(p,rgbValues,0,bytes);//灰度化

double colorTemp =0;

for (int i =0;i

colorTemp =rgbValues (i+2)*0.299+rgbValues (i+1)*0.587+

rgbValues(i)*0.114;

rgbValues[i]=rgbValues[i+1]=rgbValues[i+2]=Convert.ToByte

(colorTemp);

}

//回复位图

System.Runtime.InteropServices.Marshal.Copy(rgbValues,0,p,bytes);//解锁位图(代码略)2.2图像积木化点阵法运算

图2.2

Lena 原图和积木效果图

基于C#的数字图像处理算法的分析研究

赵哲

(广州大学华软软件学院广东

广州

510990)

【摘要】以C#为语言基础,通过对数字图像常见的灰度化、积木化、浮雕效果等处理算法的分析研究,了解运用C#中的内存法和GDI+提供的像素点阵算法处理数字图像。

【关键词】数字图像处理;GDI+;灰度化算法;像素点阵算法

【Abstract 】Take C #as language basis,by the fact that the pixel lattice algorithm that memory law and GDI +in studying ,knowing to wield C #

handling algorithmic analysis such as effect ,building block effect ,emboss effect provides sells a digital picture at reduced prices to common gradation of digital picture.

【Key words 】Digital image processing ;GDI +;Gray-scale algorithm ;Pixel dot-matrix

algorithm

○IT 论坛○484

科技信息2010年第7期

SCIENCE &TECHNOLOGY INFORMATION 上图为经典图片Lena 图的原图(左)和积木效果图(右),在原图中,各个点的RGB 值均不相同,而在积木效果图中,其像素点的值只有0或255两种,积木效果图的算法原理,如下所示:

4)BlockTemp(x,y)=[R(x,y)+G(x,y)+B(x,y)]/3

假设Block(x,y)是x ,y 像素点的RGB 积木值,如果BlockTemp 大于等于128,则设置Block(x,y)=255,反则,设置Block(x,y)=0。

由于位图图像中的像素以点阵方式整齐排列,对像素点的处理,也通常被称作数字图像处理中的点阵算法。GDI+提供了Bitmap.GetPixel 和Bitmap.SetPixel 方法可以获取或者设置当前像素的颜色,这是种比较简单的方法,但是,运行速度较内存发慢。代码片段如下所示:

//实例化位图为myMap ,定义颜色blockColor ,定义像素值block //点阵循环

for (int x=0;x

for(int y =0;y

blockColor=myMap.GetPixel(x,y);

block =(blockColor.R+blockColor.G+blockColor.B)/3;if (block>=128)

myMap.SetPixel(x,y,color.FromArgb(255,255,255));else

myMap.SetPixel(x,y,color.FromArgb(0,0,0));}}2.3

图像浮雕效果运算

图2.3Lena 原图和浮雕效果图

上图为经典图片Lena 图的原图(左)和浮雕效果图(右)。浮雕效果的主要原理是:像素点的像素值与相邻像素点的像素值相减后加上128,然后将其作为新的像素点的值赋值给图像,如下所示:

5)Enchase(x,y).R=|R(x,y)-R(x+1,y+1)|+1286)Enchase(x,y).G=|G(x,y)-G(x+1,y+1)|+1287)Enchase(x,y).B=|B(x,y)-B(x+1,y+1)|+128

其中Enchase(x,y)为x ,y 像素点的浮雕颜色,代码片段如下所示://实例化位图为myMap ,定义颜色blockColor ,定义像素值block //点阵循环

for (int x=0;x

for(int y =0;y

enchaseColor=myMap.GetPixel(x,y);

enchaseNeiColor=myMap.GetPixel(x+1,y+1)int r,g,b;

r =Math.Abs(enchaseColor.R-enchaseNeiColor.R);g =Math.Abs(enchaseColor.G-enchaseNeiColor.G);b =Math.Abs(enchaseColor.B-enchaseNeiColor.B);myMap.SetPixel(x,y,color.FromArgb(r,g,b));}}

3小结

在过去的二三十年里,C++成为在商业软件的开发领域中使用最多的语言之一,也广泛应用与数字图像处理算法中,但是,既要精通图像处理的各种算法,又要精通C++的语法结构,是件不太容易的事情。C#保留了C++原有的强大功能,同时具有简单的语法结构和高效的开发能力,做数字图像开发是最容易上手的一门工具语言,然而,到目前为止,市面上基于C#的数字图像算法非常少,本文通过对数字图像

算法的分析研究,实现数字图像处理中各种常见的效果,希望可以与读者共勉!【参考文献】

[1]MSDN.

[2]何金国.数字图像处理实训教程.清华大学出版社,2008,11.[3]赵春江.C#数字图像处理算法.人民邮电出版社,2009,03.

作者简介:赵哲(1983.09—),女,华中科技大学软件工程硕士,广州大学华软软件学院网络技术系电子商务工程师。

[责任编辑:汤静]

(上接第637页)积极性。利用校园广播每天在空余的时间播放英文流行歌曲让学生学唱、周末组织学生观看英文原声电影,提高学生的兴趣,营造浓厚的英语氛围。让学生以轻松愉悦的心情体验外国文化并感悟其文化内涵。

4.2开辟英语角和英语学习园地。每周设定一个时间为英语角时间,提前公布本期讨论的主题,让学生在充分准备的情况之下进行交流,并请外教参与,同时,大家还可以对自己感兴趣的话题进行交流。另外,还可以在学校开辟英语学习园地,可以利用学校的黑板报,橱窗编写一些英文幽默笑话、寓言故事、精彩诗章等,既有趣又可增加词汇量,并定期更换。

4.3利用报刊杂志,增强学生了解其他国家的文化知识。

文学作品和报刊文章是了解一个民族的文化的最生动、最丰富的材料,选读不同时期的文学作品,可以了解不同时期的社会状况和文化特征,阅读报刊文章是了解现实社会的动态与文化的有效途径。教学之余可向学生推荐阅读体现外国文化的英文版的文学作品简易读本,提醒学生们留心积累有关社会习俗以及日常交际等方面的知识。

5在英语教学中,还要正确处理本国文化与外国文化的关系

中学生的道德观、价值观正在形成过程中,他们思想活跃,善于接受新鲜事物,但同时缺乏必要的鉴别能力。在培养学生跨文化意识的同时,我们应尽力减少学生民族中心主义态度,避免用我们目己的文

化、道德、价值观的标准去衡量,评判异国文化;同时又要避免盲目的追随,模仿异国文化,而应是坚持自己的优秀文化传统,比较两种文化的异同,使自己在跨文化交际中能恰当、得体的进行交际。

总之,现在英语教学要将培养学生跨文化意识,提高学生的跨文化交际能力为目标。英语教学中的跨文化意识培养不是一朝一夕、一蹴而就的事。作为一名英语教师,我们更需要正确认识跨文化交际教育在语言教育中的重要地位,在英语教学中必须兼顾语言和文化,提高对中外文化异同的敏感性。应该遵循循序渐进、因材施教的原则,综合运用多种手段和方法,积极引导学生树立正确的学习态度,培养学生的跨文化意识,这样才能全面提高英语教学的效率和质量,从而提高学生的英语交际能力。【参考文献】

[1]教育部.英语课程标准:实验稿[S].北京师范大学出版社,2001,7.[2]胡文仲.英语的教与学[M].英语教学与研究出版社,1989.[3]王薇.英语教学要注重语言和文化的关系[J].文学教育.[4]孙娟.文化意识对英语教学的影响[D].浙江大学,2008.

[5]于风波.中师英语教学中文化意识培养的研究[D].东北师范大学,2006,10.[6]赵海燕.《新目标》英语教学中文化意识培养的研究[D].东北师范大学,

2009,5.

[责任编辑:王静]

○IT 论坛○

485

相关文档
相关文档 最新文档