金昊 成希
引言:数字图像处理又被称为计算机图像处理,是指将获取到的图像信号利用计算机将其转化为数字信号的处理过程。随着计算机信息技术的不断发展,数字图像处理技术也得到了较快的发展,目前数字图像处理技术能够对图像进行编码、复原、增强、压缩等,使得其在国防领域、军事领域、图像传输领域等起着极其重要的作用。对于图像处理中的格式转换和图像增强处理,需要用户具有一定计算机程序方面和软件应用方面的知识,以下就简单的分析基于VC++在数字图像处理中的格式转换和增强处理。
前言
对于数字图像处理,将CMOS或CCD图像感应器捕捉到的未经过加工的RAW图像转换为Windows标准图像文件格式是一项最基本功能,对此本文就简单的分析了一个图像处理小软件,分析该软件对图像的格式转换以及图像增强操作,并显示出来。
一、系统的详细设计
(一)基类设计
BMP文件格式是Windows操作系统所支持并推荐的一种图像文件格式,它是一种显示器和内存都不要经过压缩就能直接按位存盘的文件格式,其通用性很强,所以将其他格式的文件转换为BMP文件格式是必不可少的功能。我们知道DIB访问函数Windows是支持的,但是都没有将其封装在MFC中,本文就尝试的封装了一个DIB类,具体包括了其成员函数与成员变量,从而实现派生其他类的目的,以实现移植[1]。我们再将该基类统一命名,并且算法都由该基类派生。
(二)函数功能
数字图像处理软件根据实际的需求,其功能大致较为接近,如tretchDIBits函数,其功能是将DIB矩形区域中的像素使用的颜色复制到指定的目标矩形内,如果源矩形的大小要小于目标矩形,则函数会对颜色数据的列和行进行拉伸,从而使源矩形能够和目标矩形相匹配,反之进行压缩。除了该函数外,还有hdc函数、XDest函数、YDest函数、nDestWidth函数、nDestHeight函数、XSrc函数、YSrc函数等[2]。
二、将RAW图像格式转化为BMP图像格式
数字图像处理软件将RAW图像格式轉化为BMP图像格式的原理如下:由于数字图像表示的是近似的连续图像,通常图像的显示是由采样点组成的矩形,然后对数字图像的灰度按照不同的方式存储,从而得到不同格式的图像。
(一)实现的步骤
1、首先根据自己的需求建立一个图像文件夹。
2、利用AppWizard生成一个自己命名的多文档项目。
3、构建一个微软基础类库项目,然后在主程序中增添3个文件,文件名分别是dibap.h、dibapa.cpp、myfile.cpp。
4、在菜单选项中添加RAW格式转化为BMP格式的对话框、对话框类、菜单项函数。消息响应函数。
5、在建立的对话框中键入需要的值。这里具体程序就不详细列出。
6、在DOC中增添读写函数与初始化函数,然后在View中OnDaw函数中增添对应函数,使图像信息能够显现[3]。
(二)注意事项
首先是Windows操作系统所支持的BMP图像格式中的宽度仅是4的倍数,如果RAW格式中不满足则需要补0操作;其次是在程序中指针和句柄的使用容易产生误区,所以在程序中需要明确的指出指针指向的位置;再者是对于程序异常需要及时的处理,发现即处理,否则在后期处理时的难度和工作量将会增大,并且容易导致程序出现漏洞;最后是编程过程中对C++语言的熟练运用能够帮助我们更加清楚的掌握图形结构。
三、实现BMP图像灰度线性拉伸
编码实现BMP图像灰度线性拉伸的主要原理如下:线性拉伸是数字图像处理中常用的一种点运算方法,其主要的核心在于线性灰度变换函数,图像中选取的点的灰度按照该函数进行处理,利用该变换函数能够实现图像的亮度、比度等操作。例如在图像处理软件程序中对选取的图像像素进行线性变换x=a*x+b,其中的a表示的是对比度,b表示亮度。
实现的步骤:在菜单选项中添加线性变换与线性变换的对话框,并在View中添加菜单选项的函数和对话框类,然后将得到Doc指针,再定义指针变量m_hdib,将得到第二部分的Doc指针传给m_hdib,从而建立BMP图像灰度线性拉伸消息响应函数。
四、对BMP图像的增强处理
高通滤波操作能够对BMP图像进行增强处理,其原理如下:高通滤波处理是一种局部处理方法,它是采用了高通滤波算子卷积运算将原图像转换为新锐化图像[5]。实现步骤:
1、添加菜单选项,添加高通滤波,在View中添加菜单选项函数,得到Doc指针,建立起BMP图像增强处理高通滤波操作消息响应函数。
2、拷贝句柄,得到两个句柄,得到两个指向第二部分的指针。
3、将得到的行和列像素数,采用高通滤波算子和for循环进行卷积运算,运算好后进行刷新,最后将得到高通滤波后的锐化图像。
五、结束语
随着计算机技术的发展,数字图像处理技术已运用到各个领域,并取得了重大的成就。目前数字图像处理技术的内容主要包含了图像数字化、图像恢复、图像增强、图像压缩、图像编码、图像分析等,并且随着软件技术的提高,其处理的能力和精度将进一步的提高。本文主要分析了一个VC++数字图像处理小程序,分析了它的设计和具体的格式转换以及图像增强问题,研究了数字图像处理中的格式转换实现步骤和增强步骤,以为相关人士提供借鉴。
参考文献
[1]张红军,蔡利栋.Tina平台的功能增强——多种图像格式转换和彩色图像显示[J].长春理工大学学报(自然科学版),2010,33(2):125-128.
[2]杨小宁,郑善贤,王炼红等.一种基于FPGA的图像格式转换设计[J].计算机系统应用,2010,19(11):246-248.
[3]杨华,佟首峰.基于FPGA的Bayer到RGB图像格式转换设计[J].现代电子技术,2010,33(2):122-124.
[4]韩姣.基于VC+ +的BMP格式图像与GIF格式图像转换[J].武汉理工大学学报(信息与管理工程版),2007,29(12):23-25,30.
[5]李进文,安博文.FPGA中Bayer到YCbCr图像格式转换的设计[J].电视技术,2013,37(23):54-56,84.
(作者单位:南京总参第六十研究所)