vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換

vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換

ID:6079344

大?。?41.50 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2018-01-02

vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換_第1頁(yè)
vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換_第2頁(yè)
vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換_第3頁(yè)
vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換_第4頁(yè)
vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換_第5頁(yè)
資源描述:

《vc編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、VC編程實(shí)現(xiàn)灰度圖像與彩色圖像的相互轉(zhuǎn)換 PhotoShop的圖像處理功能很強(qiáng),其中有一個(gè)功能是將灰度圖像轉(zhuǎn)換為彩色圖像,數(shù)字圖像處理中,也經(jīng)常要遇到灰度圖像與彩色圖像相互轉(zhuǎn)換的問(wèn)題,如何自己解決這個(gè)問(wèn)題,值得大家探討,現(xiàn)將我解決這類問(wèn)題的方法陳述如下:  工程應(yīng)用中經(jīng)常要遇到需要把彩色圖像到灰度圖像的變換的問(wèn)題,采集卡過(guò)來(lái)的圖像為彩色圖像,為加快處理速度,要把彩色圖像轉(zhuǎn)換為黑白圖象,這個(gè)問(wèn)題比較好解決,一般情況下彩色圖像每個(gè)像素用三個(gè)字節(jié)表示,每個(gè)字節(jié)對(duì)應(yīng)著R、G、B分量的亮度(紅、綠、藍(lán)),轉(zhuǎn)換后的黑白圖像的一個(gè)像素用一個(gè)字節(jié)表示該

2、點(diǎn)的灰度值,它的值在0~255之間,數(shù)值越大,該點(diǎn)越白,既越亮,越小則越黑。轉(zhuǎn)換公式為Gray(i,j)=0.11*R(i,j)+0.59*G(i,j)+0.3*B(i,j),其中Gray(i,j)為轉(zhuǎn)換后的黑白圖像在(i,j)點(diǎn)處的灰度值,我們可以觀察該式,其中綠色所占的比重最大,所以轉(zhuǎn)換時(shí)可以直接使用G值作為轉(zhuǎn)換后的灰度。  至于灰度圖像轉(zhuǎn)換為彩色圖像,技術(shù)上稱為灰度圖像的偽彩色處理,這是一種視覺(jué)效果明顯而技術(shù)又不是很復(fù)雜的圖像增強(qiáng)技術(shù)。灰度圖像中,如果相鄰像素點(diǎn)的灰度相差不大,但包含了豐富的信息的話,人眼則無(wú)法從圖像中提取相應(yīng)的信

3、息,因?yàn)槿搜鄯直婊叶鹊哪芰懿?,一般只有幾十個(gè)數(shù)量級(jí),但是人眼對(duì)彩色信號(hào)的分辨率卻很強(qiáng),這樣將黑白圖像轉(zhuǎn)換為彩色圖像人眼可以提取更多的信息量。在轉(zhuǎn)換過(guò)程中,經(jīng)常采用的技術(shù)是灰度級(jí)-彩色變換,意思就是對(duì)黑白圖像上的每一個(gè)像素點(diǎn),取得該點(diǎn)的灰度值并送入三個(gè)通道經(jīng)過(guò)實(shí)施不同的變換,產(chǎn)生相應(yīng)的R、G、B的亮度值,即所求彩色圖像對(duì)應(yīng)像素點(diǎn)的彩色值,具體變換公式很多,我采用的是最常用的一種,變換曲線圖如下:  上圖中,三個(gè)圖分別代表了三個(gè)變換通道,R、G、B指的是變換后對(duì)應(yīng)點(diǎn)的R、G、B分量值,L指的是各個(gè)分量的最大值為255,G(x,y)為相應(yīng)點(diǎn)

4、的灰度值。理論上就這些,下面是我用VC實(shí)現(xiàn)的源代碼,圖一為我的灰度位圖,圖二為偽彩色處理后的結(jié)果圖。我這個(gè)實(shí)現(xiàn)函數(shù)中是如何得到灰度位圖的數(shù)據(jù)的就不多講了,有興趣的朋友可參考我在天極網(wǎng)上九月十號(hào)發(fā)表的《VC灰度位圖處理》一文,那里應(yīng)該講的很清楚了。需要讀者注意的是彩色圖像中每個(gè)象素中的三個(gè)字節(jié)分別代表的分量,第一個(gè)字節(jié)為B,第二個(gè)為G值、最后一個(gè)為R值,這個(gè)順序不要搞錯(cuò)了。代碼實(shí)現(xiàn)如下:voidCDibView::OnMenuchange()file://圖像轉(zhuǎn)換實(shí)現(xiàn)函數(shù){ //TODO:Addyourcommandhandlercode

5、here HANDLEdata1handle; LPBITMAPINFOHEADERlpBi; BITMAPINFO*m_pBMI; CDibDoc*pDoc=GetDocument(); HDIBhdib; unsignedchar*hData; unsignedchar*data; hdib=pDoc->GetHDIB();//得到位圖數(shù)據(jù)的句柄,其中包含圖像信息頭 BeginWaitCursor(); lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib); hData=(unsign

6、edchar*)FindDIBBits((LPSTR)lpBi); m_pBMI=newBITMAPINFO;//生成彩色圖像的信息頭 m_pBMI->bmiHeader.biBitCount=24; m_pBMI->bmiHeader.biClrImportant=0; m_pBMI->bmiHeader.biClrUsed=0; m_pBMI->bmiHeader.biCompression=BI_RGB; m_pBMI->bmiHeader.biHeight=lpBi->biHeight; m_pBMI->bmiHeader.bi

7、Width=lpBi->biWidth; m_pBMI->bmiHeader.biPlanes=1; m_pBMI->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); m_pBMI->bmiHeader.biXPelsPerMeter=0; m_pBMI->bmiHeader.biYPelsPerMeter=0; m_pBMI->bmiHeader.biSizeImage=WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight*3; file://data=hData; 

8、intR,G,B,i,j; data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight*3); file://

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。