.Bmp圖片雙顯和灰度原理為了方便后續(xù)的量化采樣處理,這里首先要實(shí)現(xiàn)bmp圖片雙顯的功能,即在menu的左邊顯示原圖,把原圖的文件頭數(shù)據(jù)和信息頭數(shù)據(jù)保存在全局變量數(shù)組中;同時建立一個臨時">
4.mfc-bmp圖片灰度和雙顯

4.mfc-bmp圖片灰度和雙顯

ID:6128413

大小:1000.41 KB

頁數(shù):8頁

時間:2018-01-04

4.mfc-bmp圖片灰度和雙顯_第1頁
4.mfc-bmp圖片灰度和雙顯_第2頁
4.mfc-bmp圖片灰度和雙顯_第3頁
4.mfc-bmp圖片灰度和雙顯_第4頁
4.mfc-bmp圖片灰度和雙顯_第5頁
資源描述:

《4.mfc-bmp圖片灰度和雙顯》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、Eastmount制作第四課bmp圖片雙顯和灰度<一>.Bmp圖片雙顯和灰度原理為了方便后續(xù)的量化采樣處理,這里首先要實(shí)現(xiàn)bmp圖片雙顯的功能,即在menu的左邊顯示原圖,把原圖的文件頭數(shù)據(jù)和信息頭數(shù)據(jù)保存在全局變量數(shù)組中;同時建立一個臨時的”picture.bmp”圖片(默認(rèn)保存路徑在打開原圖的位置),以后的操作對臨時的圖片進(jìn)行處理。如圖:左邊為原圖(彩圖),右邊為雙顯,同時在右邊的臨時圖片進(jìn)行處理。此圖的處理是灰度(右邊是灰度后的圖片)。Eastmount制作(百度文庫:BMP彩圖轉(zhuǎn)灰度圖)1.什么叫灰度圖?任何顏色都有紅、綠、藍(lán)三原色組成,假如原來某

2、點(diǎn)的顏色為RGB(R,G,B),那么,我們可以通過下面幾種方法,將其轉(zhuǎn)換為灰度:浮點(diǎn)算法:Gray=R*0.3+G*0.59+B*0.11整數(shù)方法:Gray=(R*30+G*59+B*11)/100移位方法:Gray=(R*28+G*151+B*77)>>8;平均值法:Gray=(R+G+B)/3;(此程序采用算法)僅取綠色:Gray=G;通過上述任一種方法求得Gray后,將原來的RGB(R,G,B)中的R,G,B統(tǒng)一用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖了。2.改變象素

3、矩陣的RGB值,來達(dá)到彩色圖轉(zhuǎn)變?yōu)榛叶葓D加權(quán)平均值算法:根據(jù)光的亮度特性,其實(shí)正確的灰度公式應(yīng)當(dāng)是R=G=B=R*0.299+G*0.587+B0.144為了提高速度我們做一個完全可以接受的近似,公式變形如下:R=G=B=(R*3+G*6+B)/103.真正的24位真彩圖與8位的灰度圖的區(qū)別就在于,真彩圖文件中沒有調(diào)色板,灰度圖有調(diào)色板,真彩圖中的象素矩陣是RGB值,灰度圖中的象素矩陣是調(diào)色板索引值。源代碼只簡單的改變象素矩陣的RGB值,來達(dá)到彩色圖轉(zhuǎn)為灰度圖,并沒有添加調(diào)色板;該程序未實(shí)現(xiàn)添加了調(diào)色板。Eastmount制作<二>.MFC實(shí)現(xiàn)雙顯和灰度第

4、一步:建立標(biāo)記位1.在View.cpp文件中顯示函數(shù)前建立標(biāo)記位,即:voidCBmpDrawView::ShowBitmap(CDC*pDC,CStringBmpName)前添加:/*****************************************************//*numPicture=0時顯示提示錯誤信息*//*numPicture=1時顯示1張圖片在OnFileOpen中定義*//*numPicture=2時顯示2張圖片和處理在處理函數(shù)中定義*//**************************************

5、***************//*****************************************************//*level=0時顯示2張圖片*//*level=1時顯示灰度圖片*//*level=3時顯示圖片采樣*//*level=248163263時不同量化級量化圖片*//*****************************************************/intnumPicture=0;//顯示圖片數(shù)intlevel=0;//顯示量化等級2.在View.h中建立處理圖像的副本文件和默認(rèn)路徑:CBi

6、tmapm_bitmaplin;//創(chuàng)建臨時位圖對象進(jìn)行處理CStringBmpNameLin;//保存圖像的副本文件原工程中3.在View.cpp的OnFileOpen文件打開函數(shù)中初始化標(biāo)記變量:voidCBmpDrawView::OnFileOpen()中添加:if(dlg.DoModal()==IDOK){//獲取路徑文件名擴(kuò)展文件名BmpName=dlg.GetPathName();BmpNameLin="picture.bmp";AfxMessageBox("圖片打開成功",MB_OK,0);numPicture=1;EntName=dlg.G

7、etFileExt();EntName.MakeLower();//小寫字符串Invalidate();}Eastmount制作第二步:報(bào)錯處理指的是在沒有載入圖片(numPicture=0)時就按保存按鈕,或雙顯、灰度、量化、采樣按鈕,就會提示相應(yīng)的錯誤提示。因?yàn)樵诖蚩▓D片OnFileOpen函數(shù)中令numPicture=1初始化才能顯示圖片及處理。在View.cpp中的函數(shù)voidCBmpDrawView::OnFileSave()中最前面增加代碼如下://如果沒有導(dǎo)入圖片直接點(diǎn)擊保存提示信息if(numPicture==0){AfxMessageBo

8、x("載入圖片后才能保存圖片!",MB_OK,0);return;

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

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

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