位圖仿射變換算法研究

位圖仿射變換算法研究

ID:38111687

大小:172.33 KB

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

時(shí)間:2019-05-25

位圖仿射變換算法研究_第1頁(yè)
位圖仿射變換算法研究_第2頁(yè)
位圖仿射變換算法研究_第3頁(yè)
位圖仿射變換算法研究_第4頁(yè)
資源描述:

《位圖仿射變換算法研究》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、計(jì)算機(jī)技術(shù)與應(yīng)用進(jìn)展-2004位圖仿射變換算法研究*徐磊陳淑珍武漢火學(xué)電子信息學(xué)院,湖北武漢430072摘要仿射變換是比較重要的圖像變換方法,在對(duì)位圖進(jìn)行仿射變換時(shí),位圖像素點(diǎn)顏色信.息位數(shù)不同,對(duì)其進(jìn)行仿射變換操作時(shí)的算法也不同本文分別對(duì)不同顏色信息位圖進(jìn)行分析,得出了對(duì)他們進(jìn)行仿射變換時(shí)的算法,并用程序?qū)崿F(xiàn).關(guān)健詞仿射變換位圖像素1引言圖像的仿射變換也叫圖像的幾何變換,包括圖像的平移,鏡像,轉(zhuǎn)置,縮放,旋轉(zhuǎn),等操作。在程序?qū)崿F(xiàn)的過(guò)程中,有些變換如平移,鏡像,縮放等操作使用一般的顯示函數(shù),只要修改相應(yīng)的參

2、數(shù)即可,但是在進(jìn)行旋轉(zhuǎn)操作的時(shí)候僅僅進(jìn)行參數(shù)的修改是不能實(shí)現(xiàn)的,這時(shí)就需要對(duì)圖像進(jìn)行點(diǎn)操作,即對(duì)組成圖像的每一個(gè)像素進(jìn)行操作,以達(dá)到變換的目的。在位圖格式中,不同的圖像,其像素點(diǎn)的顏色信息位數(shù)不同,本文分析對(duì)不同DIB位圖進(jìn)行仿射變換時(shí)的算法。2相關(guān)知識(shí)2.1仿射變換圖像變換是指數(shù)字圖像的兒何變換(或稱為空間變換),即圖像中點(diǎn)與點(diǎn)之間的空間映射關(guān)系。仿射變換是一種特殊的變換方式,其一般表達(dá)式為:a=a,2氣[x,Y,1l=[u,V,1llall氣a3,其中(x,y)為新圖像中的點(diǎn),(u,v)為與(x,y)對(duì)

3、應(yīng)的原圖像上的點(diǎn)。將上式展開(kāi)可得:︸1X--1a=u+a2,v+a3,71..y--1‘a(chǎn),2u+422,+432仿射變換能實(shí)現(xiàn)位圖的平面映射,常見(jiàn)的包括平移,旋轉(zhuǎn),縮放和剪切等。2.2DIB位圖文件結(jié)構(gòu)簡(jiǎn)介一個(gè)BMP文件大體上分成4個(gè)部分:位圖文件頭,位圖信息頭,調(diào)色板,位圖數(shù)據(jù)111對(duì)于2色位圖,用1位就可以表示該像素的顏色,(一般0表示黑,1表示白),所以一個(gè)字節(jié)就可褲者簡(jiǎn)介:徐磊(1980-),男,碩士生,現(xiàn)從事多媒體信號(hào)分析與網(wǎng)絡(luò)技術(shù)研究位圖仿射變換算法研究以表示8個(gè)像素;對(duì)于16色位圖,用4位可

4、以表示一個(gè)像素的顏色,所以一個(gè)字節(jié)就可以表示2個(gè)像素;對(duì)于256色位圖,1個(gè)字節(jié)剛好可以表示一個(gè)像素;對(duì)于真彩色圖,3個(gè)字節(jié)才能表示一個(gè)像索。3獲取圖像數(shù)據(jù)的方法要對(duì)圖像進(jìn)行處理,必須先讀出圖像數(shù)據(jù)。通過(guò)以下語(yǔ)句獲得圖像數(shù)據(jù)B1.CStringFilter-"bitmapfiles(*.bmp)l*.bmplallfiles(*.*)I*.*I";/定義打開(kāi)文件類(lèi)型CFileDialogdlgopen(TRUE,Filter,O,OFNesHIDEREADONLYIOFN一OVERWRITEPROMPT,F

5、ilter,0);/定義打開(kāi)對(duì)話框if(IDCANCEL==dlgopen.DoModal())return;/顯示打開(kāi)對(duì)話框FileName=dlgopen.GetPathNameQ;/得到文件名CFilebsFile((LPCTSTR)FileName,CFile::modeReadWrite);/打開(kāi)文件,可讀可寫(xiě)bsFile.SeekToBegin();/從文件的開(kāi)始filelength=bsFile.GetLength();/圖像文件長(zhǎng)度memyadd=(LPBYTE)malloc(filelen

6、gth);/分配內(nèi)存,存放位圖數(shù)據(jù)bsFile.ReadHuge(memyadd,filelength);/將位圖數(shù)據(jù)讀入內(nèi)存bi=(BITMAPINFOHEADER*)(memyadd+sizeof(BITMAPFILEHEADER));/將指針bi指向位圖數(shù)據(jù)的/信息頭bf=(BITMAPFILEHEADER*)memyadd;//將指針bf指向位圖數(shù)據(jù)的刀文件頭,即位圖數(shù)據(jù)的開(kāi)始/部分這樣就可以得到圖像數(shù)據(jù),讀出圖像數(shù)據(jù)后,就可以通過(guò)指針對(duì)圖象數(shù)據(jù)進(jìn)行操作了。4點(diǎn)操作的算法實(shí)現(xiàn)算法的基本思想是,根據(jù)不

7、同的仿射變換方法對(duì)讀出的圖像數(shù)據(jù)進(jìn)行變換,在變換的過(guò)程中,不能改變?cè)瓟?shù)據(jù),以避免不必要的麻煩,這就需要開(kāi)辟新的內(nèi)存用于存儲(chǔ)變換后的圖像數(shù)據(jù):同時(shí),在有些仿射變換中,可能會(huì)修改圖像的信息頭的信息,如剪切操作會(huì)改變圖像的長(zhǎng)度,寬度等,就需要修改相應(yīng)的信息頭,變換結(jié)束后將新的位圖數(shù)據(jù)覆蓋原數(shù)據(jù)送顯示即可,如果不希望覆蓋原數(shù)據(jù),可以重新構(gòu)造一個(gè)位圖文件,通過(guò)上面的變換可以得到構(gòu)造新位圖文件所需的文件頭,信息頭,位圖數(shù)據(jù)等。在進(jìn)行仿射變換時(shí),需要注意的問(wèn)題是,原圖像數(shù)據(jù)變換后復(fù)制到新的內(nèi)存的相應(yīng)位置時(shí),不能影響新的數(shù)

8、據(jù)中同一個(gè)字節(jié)中的其他數(shù)據(jù)。對(duì)于像素的大小占用的內(nèi)存不是一個(gè)字節(jié)的整數(shù)倍的位圖(即2色和16色圖),它們占用的內(nèi)存都小于一個(gè)字節(jié),在算法實(shí)現(xiàn)時(shí)要稍微復(fù)雜。對(duì)于256色和真彩色的位圖,由于占用的內(nèi)存為一個(gè)字節(jié)的整數(shù)倍,不會(huì)影響到前后的像素點(diǎn)的數(shù)據(jù),因此算法相對(duì)簡(jiǎn)單。因此需要在變換前先檢查位圖的顏色信息,可通過(guò)一下語(yǔ)句獲得顏色信息:colnum=bi->biBitCount;讀取顏色信息后,就可以針對(duì)對(duì)不同顏色信息的

當(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)系客服處理。