金昊 成希
引言:數(shù)字圖像處理又被稱為計算機圖像處理,是指將獲取到的圖像信號利用計算機將其轉化為數(shù)字信號的處理過程。隨著計算機信息技術的不斷發(fā)展,數(shù)字圖像處理技術也得到了較快的發(fā)展,目前數(shù)字圖像處理技術能夠對圖像進行編碼、復原、增強、壓縮等,使得其在國防領域、軍事領域、圖像傳輸領域等起著極其重要的作用。對于圖像處理中的格式轉換和圖像增強處理,需要用戶具有一定計算機程序方面和軟件應用方面的知識,以下就簡單的分析基于VC++在數(shù)字圖像處理中的格式轉換和增強處理。
前言
對于數(shù)字圖像處理,將CMOS或CCD圖像感應器捕捉到的未經過加工的RAW圖像轉換為Windows標準圖像文件格式是一項最基本功能,對此本文就簡單的分析了一個圖像處理小軟件,分析該軟件對圖像的格式轉換以及圖像增強操作,并顯示出來。
一、系統(tǒng)的詳細設計
(一)基類設計
BMP文件格式是Windows操作系統(tǒng)所支持并推薦的一種圖像文件格式,它是一種顯示器和內存都不要經過壓縮就能直接按位存盤的文件格式,其通用性很強,所以將其他格式的文件轉換為BMP文件格式是必不可少的功能。我們知道DIB訪問函數(shù)Windows是支持的,但是都沒有將其封裝在MFC中,本文就嘗試的封裝了一個DIB類,具體包括了其成員函數(shù)與成員變量,從而實現(xiàn)派生其他類的目的,以實現(xiàn)移植[1]。我們再將該基類統(tǒng)一命名,并且算法都由該基類派生。
(二)函數(shù)功能
數(shù)字圖像處理軟件根據(jù)實際的需求,其功能大致較為接近,如tretchDIBits函數(shù),其功能是將DIB矩形區(qū)域中的像素使用的顏色復制到指定的目標矩形內,如果源矩形的大小要小于目標矩形,則函數(shù)會對顏色數(shù)據(jù)的列和行進行拉伸,從而使源矩形能夠和目標矩形相匹配,反之進行壓縮。除了該函數(shù)外,還有hdc函數(shù)、XDest函數(shù)、YDest函數(shù)、nDestWidth函數(shù)、nDestHeight函數(shù)、XSrc函數(shù)、YSrc函數(shù)等[2]。
二、將RAW圖像格式轉化為BMP圖像格式
數(shù)字圖像處理軟件將RAW圖像格式轉化為BMP圖像格式的原理如下:由于數(shù)字圖像表示的是近似的連續(xù)圖像,通常圖像的顯示是由采樣點組成的矩形,然后對數(shù)字圖像的灰度按照不同的方式存儲,從而得到不同格式的圖像。
(一)實現(xiàn)的步驟
1、首先根據(jù)自己的需求建立一個圖像文件夾。
2、利用AppWizard生成一個自己命名的多文檔項目。
3、構建一個微軟基礎類庫項目,然后在主程序中增添3個文件,文件名分別是dibap.h、dibapa.cpp、myfile.cpp。
4、在菜單選項中添加RAW格式轉化為BMP格式的對話框、對話框類、菜單項函數(shù)。消息響應函數(shù)。
5、在建立的對話框中鍵入需要的值。這里具體程序就不詳細列出。
6、在DOC中增添讀寫函數(shù)與初始化函數(shù),然后在View中OnDaw函數(shù)中增添對應函數(shù),使圖像信息能夠顯現(xiàn)[3]。
(二)注意事項
首先是Windows操作系統(tǒng)所支持的BMP圖像格式中的寬度僅是4的倍數(shù),如果RAW格式中不滿足則需要補0操作;其次是在程序中指針和句柄的使用容易產生誤區(qū),所以在程序中需要明確的指出指針指向的位置;再者是對于程序異常需要及時的處理,發(fā)現(xiàn)即處理,否則在后期處理時的難度和工作量將會增大,并且容易導致程序出現(xiàn)漏洞;最后是編程過程中對C++語言的熟練運用能夠幫助我們更加清楚的掌握圖形結構。
三、實現(xiàn)BMP圖像灰度線性拉伸
編碼實現(xiàn)BMP圖像灰度線性拉伸的主要原理如下:線性拉伸是數(shù)字圖像處理中常用的一種點運算方法,其主要的核心在于線性灰度變換函數(shù),圖像中選取的點的灰度按照該函數(shù)進行處理,利用該變換函數(shù)能夠實現(xiàn)圖像的亮度、比度等操作。例如在圖像處理軟件程序中對選取的圖像像素進行線性變換x=a*x+b,其中的a表示的是對比度,b表示亮度。
實現(xiàn)的步驟:在菜單選項中添加線性變換與線性變換的對話框,并在View中添加菜單選項的函數(shù)和對話框類,然后將得到Doc指針,再定義指針變量m_hdib,將得到第二部分的Doc指針傳給m_hdib,從而建立BMP圖像灰度線性拉伸消息響應函數(shù)。
四、對BMP圖像的增強處理
高通濾波操作能夠對BMP圖像進行增強處理,其原理如下:高通濾波處理是一種局部處理方法,它是采用了高通濾波算子卷積運算將原圖像轉換為新銳化圖像[5]。實現(xiàn)步驟:
1、添加菜單選項,添加高通濾波,在View中添加菜單選項函數(shù),得到Doc指針,建立起B(yǎng)MP圖像增強處理高通濾波操作消息響應函數(shù)。
2、拷貝句柄,得到兩個句柄,得到兩個指向第二部分的指針。
3、將得到的行和列像素數(shù),采用高通濾波算子和for循環(huán)進行卷積運算,運算好后進行刷新,最后將得到高通濾波后的銳化圖像。
五、結束語
隨著計算機技術的發(fā)展,數(shù)字圖像處理技術已運用到各個領域,并取得了重大的成就。目前數(shù)字圖像處理技術的內容主要包含了圖像數(shù)字化、圖像恢復、圖像增強、圖像壓縮、圖像編碼、圖像分析等,并且隨著軟件技術的提高,其處理的能力和精度將進一步的提高。本文主要分析了一個VC++數(shù)字圖像處理小程序,分析了它的設計和具體的格式轉換以及圖像增強問題,研究了數(shù)字圖像處理中的格式轉換實現(xiàn)步驟和增強步驟,以為相關人士提供借鑒。
參考文獻
[1]張紅軍,蔡利棟.Tina平臺的功能增強——多種圖像格式轉換和彩色圖像顯示[J].長春理工大學學報(自然科學版),2010,33(2):125-128.
[2]楊小寧,鄭善賢,王煉紅等.一種基于FPGA的圖像格式轉換設計[J].計算機系統(tǒng)應用,2010,19(11):246-248.
[3]楊華,佟首峰.基于FPGA的Bayer到RGB圖像格式轉換設計[J].現(xiàn)代電子技術,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.
(作者單位:南京總參第六十研究所)