基于VFW的成像聲納視頻壓縮存儲設(shè)計
如果直接顯示圖像數(shù)據(jù),那么在屏幕上為一個矩形,和實(shí)際探測區(qū)域?yàn)?0°視角的扇形區(qū)域不一致。為了符合人們的觀察習(xí)慣,需要把圖像進(jìn)行坐標(biāo)轉(zhuǎn)換,將矩形視圖轉(zhuǎn)換成扇形視圖,如圖 2所示。除此之外,波束形成產(chǎn)生的是灰度圖像,每個像素點(diǎn)由一個8bit的像素值表示,即0~255的灰度值。為了提高人眼對圖像的分辨能力,在顯示的時候需要將灰度圖像映射成彩色圖像,即每個像素點(diǎn)由三個8bit的值表示,分別為RGB強(qiáng)度值。這種彩色并非真正意義上的彩色圖像,故而稱之為偽彩色。圖 3所示為偽彩色映射的bone、cool、copper、hot、jet五種映射方式。
壓縮前位圖格式與轉(zhuǎn)換后的扇形圖像有關(guān),它保存的是扇形圖的位圖信息,包括圖像的寬度、高度、大小、每個像素點(diǎn)的位數(shù)等。最終顯示的扇形圖的寬和高與圖像是否處于縮放狀態(tài)有關(guān)。在MFC工程的頭文件中定義了一個40字節(jié)的專有結(jié)構(gòu)來保存壓縮前的位圖格式,根據(jù)圖像是否處于縮放狀態(tài)進(jìn)行賦值。
2.2 壓縮參數(shù)設(shè)置
該部分定義了一個COMPVARS結(jié)構(gòu)的對象保存編碼器的壓縮參數(shù)。開發(fā)者可以自己手動設(shè)置該結(jié)構(gòu)體中的各個成員變量,前提是你必須了解使用的編碼器的參數(shù)值;也可以彈出一個對話框讓用戶選擇編碼器,如圖 4所示,同時初始化COMPVARS結(jié)構(gòu)。
本文中采用第二種方法來設(shè)置壓縮參數(shù)。ICCompressorChoose()函數(shù)中的uiFlags參數(shù)可供開發(fā)人員進(jìn)行不同應(yīng)用的開發(fā),可以設(shè)置為如表 1所示的五種值。
本文選擇MPEG-4 Xvid編碼器。如果用戶成功選擇了一個編碼器,該函數(shù)返回TRUE,否則返回FALSE。通過一個指向COMPVARS結(jié)構(gòu)的指針返回用戶通過對話框選擇的編碼器的壓縮參數(shù)信息并使用該壓縮參數(shù)進(jìn)行圖像壓縮。
c++相關(guān)文章:c++教程
評論