ht玩玩数字图像处理[2]---图像增强


所属类别:技术博客

文章作者:秦盛

特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!


玩玩数字图像处理[2]---图像增强 EmilMatthew (EmilMatthew@126.com)[ 类别 ]算法实现[推荐指数]★★[ 摘要 ]本文主要介绍了基于灰度图像的图像增强方面的技术。[ 关键词 ]图像增强Playing With Digit Image Process [2] ------Image Enhancement[Classify] Algorithm Implementation[ Level ] ★★[Abstract] This article mainly introduces the technology of Image enhancement based on the grey digit image.[Key Words]Image Enhancement[0引言] 数字图像的增强工作,主要是对于原有图像中需要重点观测内容进行突出,而对非重点观测内容则进行抑制。本文主要介绍两种效用较为明显的方法:1. 直方图的均衡化。2.伪彩色方法。其余的方法,如对比度线性展宽,灰级窗等相对容易,具体请参考[1]。[1直方图的均衡化方法] 直方图均衡化的方法的主要目的,简单说来,就是将原来出现频率较高的像素范围进行展宽,而对出现频率较低的像素,则尽可能的将其像素范围进行压缩,以期达到突出画面主要内容的目的。 具体来说,图像均衡化的方法如下:直方图的均衡化算法实现:void BMParse::equalizeOp(HDC inHdc,int offsetX,int offsetY){ //0.Inner value int arrHists[256]; float pArr[256]; int i,j; long totalHistVal; //0.Valuable declaration unsigned long outputPixel; int tmpTableVal; //1.cal each grey value's fequence for(i=0;i<256;i++) arrHists[i]=0; for(j=0;j<mBMFileInfo.bmHeight;j++) for(i=0;i<mBMFileInfo.bmWidth;i++) { arrHists[bmpBWMatrix[j][i]]++; } //2.cal total hist value totalHistVal=mBMFileInfo.bmHeight*mBMFileInfo.bmWidth; //3.cal pipArr[0]=0;pArr[1]=(float)arrHists[0]/(float)totalHistVal+(float)arrHists[1]/(float)totalHistVal; //4.show out adjusted picture: for(i=0;i<mBMFileInfo.bmHeight;i++) for(j=0;j<mBMFileInfo.bmWidth;j++) { tmpTableVal=255*pArr[bmpBWMatrix[i][j]]; //make to windows color format outputPixel=((unsigned long)paletteArr[tmpTableVal].b)*65536+((unsigned long)paletteArr[tmpTableVal].g)*256+(unsigned long)paletteArr[tmpTableVal].r; //output pixel SetPixel(inHdc,j+offsetX,i+offsetY,outputPixel); }} 图1:庙宇原像 图2:庙宇均衡化后的图像[2灰度图像的伪彩色处理] 由于现实仪器设备彩采集数据能力的限制,如CT扫描仪,温度感知器等,这些仪器得到的图像通常仅为灰度图像。而灰度图像对于视觉的观测上对区域的区分不是十分明显,如医学上病灶的位置,或某个环境场中温度较高的区域,因此,将它们从灰度图像中突显出来就显得十分必要了。而伪彩色处理技术则不失为一种有效的处理方式,虽然“彩”色的效果距离真实还有相当的差距,但从伪彩色处理的效果上看,已经能够满足现实应用的要求了。 灰度图像的伪彩色处理的原理如下:根据色彩学方面的研究结果,将灰度图像对应到red , green , blue三个通道上,最后将三个通道的颜色值合成为需要显示的RGB颜色值即可。 灰度值与三个通道的映射关系如图3、图4、图5所示: 图3:灰度与红色通道映射关系 图4:灰度与绿色通道映射关系 图5:灰度与蓝色通道映射关系 伪彩色处理的算法实现:void BMParse::changeGreyToColorMix(HDC inHdc,int offsetX,int offsetY){ //0.Inner Value declaration unsigned long outputPixel; int tmpTableVal; int i,j; //1.Core part of false color change for(i=0;i<mBMFileInfo.bmHeight;i++) for(j=0;j<mBMFileInfo.bmWidth;j++) { //1.1color change ,show out //red channel if(bmpBWMatrix[i][j]<128) tmpTableVal=0; else if(bmpBWMatrix[i][j]<192) tmpTableVal=255/64*(bmpBWMatrix[i][j]-128); else tmpTableVal=255; outputPixel=(unsigned long)tmpTableVal; //green channel if(bmpBWMatrix[i][j]<64) tmpTableVal=255/64*bmpBWMatrix[i][j]; else if(bmpBWMatrix[i][j]<192) tmpTableVal=255; else tmpTableVal=-255/63*(bmpBWMatrix[i][j]-192)+255; outputPixel+=(unsigned long)tmpTableVal*256; //blue channel if(bmpBWMatrix[i][j]<64) tmpTableVal=255; else if(bmpBWMatrix[i][j]<128) tmpTableVal=-255/64*(bmpBWMatrix[i][j]-64)+255; else tmpTableVal=0; outputPixel+=(unsigned long)tmpTableVal*65536; //1.2show out SetPixel(inHdc,j+offsetX,i+offsetY,outputPixel); }} 图6:庙宇像的红色通道 图7: 庙宇像伪彩色化后的结果 从实验结果可以看出,在现实条件下温度较高或较亮的区域中,呈现红色调;而对于较冷或暗的区域则以蓝色调显示,中间的颜色则以绿色调呈现。[参考文献与网站][0]朱虹等著,数字图像处理基础,科学出版社,2005.程序完成日:06/09/24文章完成日:06/09/27[源码下载]注:源码中包括了1)对比度增强、2)对比度线性展宽、3)灰级窗、4)二值化5)直方图的均衡化、6)伪彩色,六种图像增强方法的源码。http://emilmatthew.51.net/EmilPapers/0629ImageProcess2/code1.rarhttp://emilmatthew.51.net/EmilPapers/0629ImageProcess2/code2.rarhttp://emilmatthew.51.net/EmilPapers/0629ImageProcess2/code3.rarhttp://emilmatthew.51.net/EmilPapers/0629ImageProcess2/code4.rar若直接点击无法下载(或浏览),请将下载(或浏览)的超链接粘接至浏览器地( 推荐MYIE或GREENBORWSER)址栏后按回车.若不出意外,此时应能下载.若下载中出现了问题,请参考:http://blog.csdn.net/emilmatthew/archive/2006/04/08/655612.aspx发表于 @ 2006年09月27日 03:06:00评论(loading...AddFeedbackCountStack("1290589"))编辑新一篇:凝聚点动态聚类算法实现旧一篇:三国知识问答题

相关信息

· 调用xaudio.dll解码mp3,dsound播放(源码)

· String添加trim,ltrim,rtrim

· 用Word 2007清除网页中的干扰码

· WordPress 2.6.1 beta2 发布








....

103799 56828