亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談圖像處理與BMP圖像文件格式

        2014-03-28 01:53:18陳瑜軒
        電子設(shè)計工程 2014年7期
        關(guān)鍵詞:調(diào)色板字節(jié)圖像處理

        宋 亮,陳瑜軒

        (1.海軍裝備部 陜西 西安 710043;2.中國航空計算技術(shù)研究所 陜西 西安 710068)

        平時常常會看到類似PhotoShop或Corel PhotoPaint等軟件繪制出的精美圖片,同時可以對原有的圖像進行處理,得到自己想要的結(jié)果,就像PhotoShop那樣。而這個處理過程,就是數(shù)字圖像處理(Digital Image Processing),又稱為計算機圖像處理,它是指將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計算機對其進行處理的過程。數(shù)字圖像處理(Digital Image Processing)技術(shù)是一門非常實用的技術(shù)。PhotoShop的核心就是圖像處理技術(shù)。如果掌握了數(shù)字圖像處理的基本算法就可以通過編程來實現(xiàn)了。經(jīng)歷了這么多年的發(fā)展,圖像處理經(jīng)歷了從靜止圖像到活動圖像;從單色圖像到彩色圖像;從客觀圖像到主觀圖像;從二維圖像到三維圖像的發(fā)展歷程。特別是與計算機圖形學(xué)的結(jié)合已能產(chǎn)生高度逼真、非常純凈、更有創(chuàng)造性的圖像。由此派生出來的虛擬現(xiàn)實技術(shù)的發(fā)展或許將從根本上改變?nèi)藗兊膶W(xué)習、生產(chǎn)和生活方式[1]。

        1 數(shù)字圖像和圖像處理的基本概念

        數(shù)字圖像處理是一門關(guān)于如何使用計算機對圖像進行處理的學(xué)科,而數(shù)字圖像是由被稱作像素的小塊區(qū)域組成的二維矩陣。對于單色即灰度圖像而言,每個像素的亮度用一個數(shù)值來表示,通常數(shù)值范圍在0~255之間,即可用一個字節(jié)來表示,0表示黑、255表示白,而其他表示灰度。

        彩色圖像可以用紅、綠、藍三元組組成的二維矩陣表示。通常,三元組的每個數(shù)值也在0~255之間,0表示相應(yīng)的基色在該像素中沒有,而255則代表相應(yīng)的基色在該像素中取得最大值,這種情況下每個像素可用3個字節(jié)來表示[2]。

        所謂圖像處理,就是對圖像信息進行加工以滿足人的視覺心理或者應(yīng)用需求的行為。圖像處理的手段有光學(xué)方法、電子學(xué)(數(shù)字)方法。后者正是要討論的數(shù)字圖像處理,它是指使用計算機加工處理圖像,通過各種處理算法來實現(xiàn)對圖像內(nèi)容處理。本論文只處理BMP格式的圖片進行討論。

        2 BMP圖像文件格式

        2.1 BMP圖像文件格式的基本概念

        BMP(bitmap)文件由文件頭、位圖信息頭、顏色信息和圖形數(shù)據(jù)4部分組成。文件頭主要包含文件的大小、文件類型、圖像數(shù)據(jù)偏離文件頭的長度等信息;位圖信息頭包含圖像的尺寸信息、圖像用幾個比特數(shù)值來表示一個像素、圖像是否壓縮、圖像所用的顏色數(shù)等信息。顏色信息包含圖像所用到的顏色表,顯示圖像時需用到幾個顏色表來生成調(diào)色板,但如果圖像為真彩色,即圖像的每個像素用24個比特來表示,文件中就沒有這一塊信息,也就不需要操作調(diào)色板。文件中的數(shù)據(jù)塊表示圖像的相應(yīng)像素值,需要注意的是:圖像的像素值在文件中的存放順序為從左到右,從下到上,也就是說,在BMP文件中首先存放的是圖像的最后一行像素,最后才存儲圖像的第一行像素,但對于同一行的像素,則是按照先左邊后右邊的順序存儲的;另外一個需要關(guān)注的細節(jié)是:文件存儲圖像的每一行像素值時,如果存儲該行像素值所占的字節(jié)數(shù)為4的倍數(shù),則正常存儲;否則,需要在后端補0,湊足4的倍數(shù)[3]。位圖文件的結(jié)構(gòu)如表1所示。

        表1 位圖文件結(jié)構(gòu)Tab.1 Bitmap file structure

        2.1.1 位圖頭文件

        第一部分為位圖文件頭BITMAPFILEHEADER,是一個結(jié)構(gòu),其定義如下:

        typedef struct tagBITMAPFILEHEADER{

        WORD bfType; //位圖文件的類型,必須為BM

        DWORD bfSize; //位圖文件的大小,字節(jié)單位

        WORD bfReserved1; //位圖文件保留字,必須為0

        WORD bfReserved2; //位圖文件保留字,必須為0

        DWORD bfOffBits; //位圖文件頭到數(shù)據(jù)的偏移

        }BITMAPFILEHEADER[4];

        2.1.2 位圖信息頭

        第二部分為位圖信息頭BITMAPINFOHEADER,也是一個結(jié)構(gòu),其定義如下:

        typedef struct tagBITMAPINFOHEADER{

        DWORD biSize; //該結(jié)構(gòu)所占字節(jié)數(shù)

        LONG biWidth; //位圖的寬度,像素單位

        LONG biHeight; //位圖的高度,像素單位

        WORD biPlanes; //目標設(shè)備的位面數(shù),必須為1

        WORD biBitCount; //顏色深度,即每個像素所占的位數(shù)

        DWORD biCompression; //位圖的壓縮類型

        DWORD biSizeImage; //位圖的大小,字節(jié)單位

        LONG biXPelsPerMeter; //位圖水平分辨率

        LONG biYPelsPerMeter; //位圖的垂直分辨率

        DWORD biClrUsed; //位圖實際使用的顏色表中顏色數(shù)

        DWORD biClrImportant; //位圖顯示中比較重要的顏色數(shù)

        } BITMAPINFOHEADER;

        2.1.3 顏色表

        第三部分為顏色表RGBQUAD。當然這是對那些需要調(diào)色板的位圖文件而言的。有些位圖,如真彩色圖,是不需要調(diào)色板的,BITMAPINFOHEADER后直接是位圖數(shù)據(jù)。

        顏色表實際上是一個數(shù)組,共有biClrUsed個元素(如果該值為零,則有2biBitCount個元素)。數(shù)組中每個元素的類型是一個RGBQUAD結(jié)構(gòu),占4個字節(jié),其定義如下:

        typedef struct tagRGBQUAD{

        BYTE rgbBlue; //該顏色的藍色分量

        BYTE rgbGreen; //該顏色的綠色分量

        BYTE rgbRed; //該顏色的紅色分量

        BYTE rgbReserved; //保留值

        } RGBQUAD;

        位圖信息頭和顏色表組成位圖信息結(jié)構(gòu)BITMAPINFO,其定義如下:

        typedef struct tagBITMAPINFO{

        BITMAPINFOHEADER bmiHeader; //位圖信息頭

        RGBQUAD bmiColors[1]; //顏色表

        } BITMAPINFO[5];

        2.1.4 實際的位圖數(shù)據(jù)

        第四部分就是實際的圖像數(shù)據(jù)IMAGEDATA。對于用到顏色表的位圖,圖像數(shù)據(jù)就是該像素在顏色表中的索引值。對于真彩色圖,圖像數(shù)據(jù)就是實際的R、G、B值[6]。

        1)對于2色位圖,用1位就可以表示該像素的顏色(一般0表示黑,1表示白),所以一個字節(jié)可以表示8個像素。

        2)對于16色位圖,用4位表示一個像素的顏色,所以一個字節(jié)可以表示2個像素。

        3)對于256色位圖,1個字節(jié)剛好可以表示1個像素。

        4)對于真彩色圖,3個字節(jié)才能表示1個像素。

        在這里要注意兩點:

        1)每一行的字節(jié)數(shù)必須是4的整倍數(shù),如果不是,則需要補齊。

        2)一般來說,.BMP文件的數(shù)據(jù)從下到上,從左到右的。也就是說,從文件中最先讀到的是圖像最下面一行的左邊第一個像素,然后是左邊第二個像素…接下來是倒數(shù)第二行左邊第一個像素,左邊第二個像素…依次類推,最后得到的是最上面一行的最右一個像素。

        2.2 調(diào)色板及其作用

        現(xiàn)實世界的顏色很多,但計算機只能表示其中的部分顏色。為了計算機能最好的重現(xiàn)實際圖景,就要采用一定的技術(shù)來管理顏色,從Windows3.0起,微軟就開始提供了調(diào)色板技術(shù)來作為顏色處理的一種通用方法。

        假如有一個長寬各為200像素,顏色素為16色的彩色圖,每一個像素都用R、G、B 3個分量表示。因為每個分量有256個級別,要用8位(bit),即一個字節(jié)(byte)來表示,所以每個像素需要用3個字節(jié)。整個圖像要用200×200×3字節(jié),約120K字節(jié),這樣占用的空間就太大了。

        其實,16色圖最多只有16種顏色。如果用一個表:表中的每一行記錄一種顏色的R、G、B值。這樣當表示一個像素的顏色時,只需要指出該顏色是在第幾行,即該顏色在表中的索引值。舉個例子,如果表的第0行為255,0,0(紅色),那么當某個像素為紅色時,只需要標明0即可。

        再來計算一下:16種狀態(tài)可以用4位(bit)表示,所以一個像素要用半個字節(jié)。整個圖像用200×200×0.5字節(jié),約20K字節(jié),在加上表占用的字節(jié)為3×16字節(jié)。整個占用的字節(jié)數(shù)約為前面的1/6,省了很多空間。這張R、G、B的表,就是調(diào)色板,另一種叫法是顏色查找表LUT(Look Up Table)[7]。

        2.3 與設(shè)備無關(guān)位圖DIB

        本論文主要是基于設(shè)備無關(guān)的位圖DIB(Device-Independent Bitmap)。主要是因為DIB內(nèi)的位圖幾乎都沒有被壓縮,在程序中處理起來比較方便。如果在內(nèi)存中有DIB,就可以提供指向該DIB的指針作為某些函數(shù)的參數(shù),來顯示DIB。同時,由前面的介紹可以知道,BMP文件包含了一個DIB,至于BMP文件的格式前面2.1已有講述。

        這里還要引入一個概念——Windows 圖形設(shè)備接口GDI(Graphics Device Interface)是為與設(shè)備無關(guān)的圖形設(shè)計的。因為計算機常與一系列不同的設(shè)備結(jié)合在一起,如打印機、繪圖儀等輸出設(shè)備以及顯示設(shè)備等,因而設(shè)備無關(guān)性的圖形能使用戶編程時無需考慮特殊的硬件設(shè)置,對Windows編程來說非常重要[8]。

        Windows應(yīng)用程序使用圖形設(shè)備接口和Windows設(shè)備驅(qū)動程序來支持與設(shè)備無關(guān)的圖形。圖形設(shè)備接口GDI是Windows系統(tǒng)的重要組成部分,負責系統(tǒng)與用戶或繪圖程序之間的信息交換,并控制在輸出設(shè)備上顯示圖形或文字[8]。圖1描述了Windows輸出處理流程與GDI的關(guān)系。

        圖1 Windows輸出處理流程與GDIFig.1 Windows output process with GDI

        計算機輸出設(shè)備和顯示設(shè)備種類繁多,包括不同技術(shù)標準的顯示器、打印機、繪圖儀等等,每類設(shè)備又包含許多不同的型號。為了適應(yīng)不同的設(shè)備,Windows系統(tǒng)提供應(yīng)用程序與具體設(shè)備分離的功能。操作系統(tǒng)管理并協(xié)調(diào)一系列輸出設(shè)備驅(qū)動程序,將應(yīng)用程序的圖形輸出請求轉(zhuǎn)換為打印機、繪圖儀、顯示器或其它輸出設(shè)備上的輸出。GDI的設(shè)備無關(guān)性是Windows操作系統(tǒng)的特色之一。對于開發(fā)人員而言,所要做的工作僅僅是在系統(tǒng)的幫助下建立一個與某個實際輸出設(shè)備的關(guān)聯(lián),以要求系統(tǒng)加載相應(yīng)的設(shè)備驅(qū)動程序,其他的具體輸出操作則由系統(tǒng)實現(xiàn)。由此可見,Windows系統(tǒng)分擔了應(yīng)用程序的硬件設(shè)備適配器功能。

        2.4 構(gòu)造CDib類

        在對DIB位圖進行操作時,有以下的一些任務(wù)是需要完成的:裝載位圖、獲取位圖文件頭信息、獲取位圖信息、獲取顏色表信息、獲取位圖數(shù)據(jù)信息、獲取位圖尺寸、獲取顏色總數(shù)、獲取顏色位數(shù)、創(chuàng)建位圖調(diào)色板,繪制位圖等[9]。

        3 數(shù)字圖像處理的國內(nèi)外發(fā)展

        數(shù)字圖像處理最早出現(xiàn)于20世紀50年代,早期的圖像處理的目的是改善圖像的質(zhì)量,它以人為對象,以改善人的視覺效果為目的。首次獲得實際成功應(yīng)用的是美國噴氣推進實驗室(JPL[10])。他們對航天探測器徘徊者7號在1964年發(fā)回的幾千張月球照片使用了圖像處理技術(shù),如幾何校正、灰度變換、去除噪聲等方法進行處理,并考慮了太陽位置和月球環(huán)境的影響,由計算機成功地繪制出月球表面地圖,獲得了巨大的成功。數(shù)字圖像處理取得的另一個巨大成就是在醫(yī)學(xué)上獲得的成果。1972年英國EMI公司工程師Housfield發(fā)明了用于頭顱診斷的X射線計算機斷層攝影裝置,也就是我們通常所說的CT(Computer Tomograph[11])。CT的基本方法是根據(jù)人的頭部截面的投影,經(jīng)計算機處理來重建截面圖像,稱為圖像重建。圖像處理技術(shù)的深入發(fā)展,從70年代中期開始,隨著計算機技術(shù)和人工智能、思維科學(xué)研究的迅速發(fā)展,數(shù)字圖像處理向更高、更深層次發(fā)展。人們已開始研究如何用計算機系統(tǒng)解釋圖像,實現(xiàn)類似人類視覺系統(tǒng)理解外部世界,這被稱為圖像理解或計算機視覺。其中代表性的成果是70年代末MIT的Marr提出的視覺計算理論,這個理論成為計算機視覺領(lǐng)域其后十多年的主導(dǎo)思想。圖像理解雖然在理論方法研究上已取得不小的進展,但它本身是一個比較難的研究領(lǐng)域,存在不少困難,有待人們進一步探索。

        4 結(jié)束語

        數(shù)字圖像處理研究的內(nèi)容主要有以下幾個方面:1)圖像變換 由于圖像陣列很大,往往采用圖像變換方法,將空間域處理轉(zhuǎn)換為變換域處理。2)圖像編碼壓縮 可減少描述圖像的數(shù)據(jù)量,以便節(jié)省圖像傳輸、處理時間和減少所占用的存儲器容量。3) 圖像增強 為了提高圖像的質(zhì)量,如去除噪聲[12]。圖像增強不考慮圖像降質(zhì)的原因,突出圖像中所感興趣的部分。本文對圖像處理的基本概念進行了介紹,并著重闡述了BMP圖像文件格式的基本概念。數(shù)字圖像處理作為許多學(xué)科的重要基礎(chǔ),已經(jīng)廣泛應(yīng)用于軍事、氣象、交通等領(lǐng)域,從多方面影響人們的生活。

        [1] 呂鳳軍 .數(shù)字圖像處理編程入門[M].北京:清華大學(xué)出版社,2006.

        [2] 韓玉坤.數(shù)字圖像壓縮編碼技術(shù)綜述[N]. 濰坊學(xué)院學(xué)報,2006年7月.

        [3] 周長發(fā).精通Visual C++ 圖像處理編程)[M]. 2版.電子工業(yè)出版社, 2004.

        [4] 高守傳,姚領(lǐng)田. Visual C++實踐與提高—數(shù)字圖像處理與工程應(yīng)用篇[M]. 中國鐵道出版社.2006.

        [5] MacGregor,J.F Bharati, M.H. Multivariate image analysis for process monitoring and control [J].Proceedings of SPIE - The International Society for Optical Engineering, 2009,26(5):461-462.

        [6] 夏明生,張炎生.數(shù)字圖像增強技術(shù)及其在VC++6.0下的實現(xiàn)[N]. 成都信息工程學(xué)院學(xué)報,2002.

        [7] 孔濤.圖像濾波算法的若干研究[D].杭州:浙江大學(xué),2005.

        [8] 耿生玲,田芳.圖像的平滑和銳化的原理及實現(xiàn)[N].青海師范大學(xué)學(xué)報:自然科學(xué)版,2003.

        [9] Liu,N.Yan,H.Colour image edge enhancement by two-channel process Electronics Letters[J].1994,12(9):25-28.

        [10] 謝燕江.中值濾波在圖像去噪中的應(yīng)用[N].湘南學(xué)院學(xué)報,2004.

        [11] Luengas-Ruiz,Fernando;Aguilera-Longoria[J].Daniel Digital image p rocessing in Contirod p rocess Proceed ings of the Annual Convention of the W ire Association International,1994,36(8):46-50.

        [12] 徐志平,鐘亦平,張世永.基于交叉視覺皮質(zhì)模型二值圖像形態(tài)學(xué)算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2007,19(8):991-994.XU Zhi-ping,ZHAONG Yi-ping,ZHANG Shi-yong.The intersecting cortical model two value image morphology algorithm [J].journal,Computer Aided Design and Computer Graphics,2007,19(8):991-994.

        猜你喜歡
        調(diào)色板字節(jié)圖像處理
        大自然的調(diào)色板——張掖七彩丹霞
        中老年保健(2022年3期)2022-08-24 03:00:46
        Film review:WALL·E
        No.8 字節(jié)跳動將推出獨立出口電商APP
        大地調(diào)色板
        時代郵刊(2020年3期)2020-02-27 09:17:16
        No.10 “字節(jié)跳動手機”要來了?
        機器學(xué)習在圖像處理中的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:20
        模糊圖像處理,刑事偵查利器
        圖像處理技術(shù)的實戰(zhàn)應(yīng)用
        簡談MC7字節(jié)碼
        調(diào)色板
        国产精品免费观看调教网| 欧美亚洲日韩国产人成在线播放| 在线播放偷拍一区二区| 虎白女粉嫩粉嫩的18在线观看| 青青国产揄拍视频| 无码欧亚熟妇人妻AV在线外遇 | 人禽杂交18禁网站免费| 成人三级a视频在线观看| 国产成人啪精品| 粉嫩的18在线观看极品精品| 亚洲国产精品av在线| 人妻丰满熟妇av无码区不卡 | 亚洲女同一区二区三区| 免费人成在线观看| 18禁高潮出水呻吟娇喘蜜芽 | 黑人巨大跨种族video| 久久中文字幕无码一区二区| 性感人妻av在线播放| 国产午夜视频在线观看免费| 超清纯白嫩大学生无码网站| 国产丝袜一区二区三区在线不卡| 五月激情在线观看视频| 人妻少妇-嫩草影院| 亚洲欧洲无码av不卡在线| 日韩国产有码在线观看视频| 加勒比久久综合久久伊人爱| 国产伦人人人人人人性| 尤物yw午夜国产精品视频| 欧美极品色午夜在线视频| 精品亚洲午夜久久久久| 青青草视频在线观看9| 国产精品无码一区二区三级 | 欧美1区二区三区公司| 一级老熟女免费黄色片| 日本艳妓bbw高潮一19| 成人a在线观看| 国产亚洲欧美在线播放网站| 自拍偷区亚洲综合第一页| 亚洲av无码久久| 伊人久久网国产伊人| 日韩一二三四区免费观看|