<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 基于VFW的成像聲納視頻壓縮存儲設計

          基于VFW的成像聲納視頻壓縮存儲設計

          作者:董琎琎 金雪 夏偉杰 袁春輝 時間:2014-12-29 來源:電子產(chǎn)品世界 收藏
          編者按:  摘要:針對聲納系統(tǒng)圖像實時存儲過程中的大數(shù)據(jù)量問題,本文提了一種聲納視頻壓縮存儲的工程實現(xiàn)方法。采用MPEG-4視頻編碼標準[1]及Xvid編碼器,基于VFW數(shù)字視頻軟件開發(fā)包,在VS2010開發(fā)環(huán)境下實現(xiàn)了對聲吶視頻的高壓縮率、高壓縮質(zhì)量的實時壓縮存儲。經(jīng)過實際測試,本文設計方案能夠滿足成像聲納系統(tǒng)在100m滿量程條件下,最高幀率15Hz的應用需求。   引言   聲納成像在海洋資源開發(fā)和海洋防衛(wèi)等方面有著重要的意義,具有作用距離遠、直觀顯示觀測區(qū)域狀況和識別目標等特點,被廣泛地應用于軍事、經(jīng)濟

            如果直接顯示圖像數(shù)據(jù),那么在屏幕上為一個矩形,和實際探測區(qū)域為90°視角的扇形區(qū)域不一致。為了符合人們的觀察習慣,需要把圖像進行坐標轉換,將矩形視圖轉換成扇形視圖,如圖 2所示。除此之外,波束形成產(chǎn)生的是灰度圖像,每個像素點由一個8bit的像素值表示,即0~255的灰度值。為了提高人眼對圖像的分辨能力,在顯示的時候需要將灰度圖像映射成彩色圖像,即每個像素點由三個8bit的值表示,分別為RGB強度值。這種彩色并非真正意義上的彩色圖像,故而稱之為偽彩色。圖 3所示為偽彩色映射的bone、cool、copper、hot、jet五種映射方式。

          本文引用地址:http://www.ex-cimer.com/article/267428.htm

            壓縮前位圖格式與轉換后的扇形圖像有關,它保存的是扇形圖的位圖信息,包括圖像的寬度、高度、大小、每個像素點的位數(shù)等。最終顯示的扇形圖的寬和高與圖像是否處于縮放狀態(tài)有關。在MFC工程的頭文件中定義了一個40字節(jié)的專有結構來保存壓縮前的位圖格式,根據(jù)圖像是否處于縮放狀態(tài)進行賦值。

            2.2 壓縮參數(shù)設置

            該部分定義了一個COMPVARS結構的對象保存的壓縮參數(shù)。開發(fā)者可以自己手動設置該結構體中的各個成員變量,前提是你必須了解使用的的參數(shù)值;也可以彈出一個對話框讓用戶選擇,如圖 4所示,同時初始化COMPVARS結構。

            本文中采用第二種方法來設置壓縮參數(shù)。ICCompressorChoose()函數(shù)中的uiFlags參數(shù)可供開發(fā)人員進行不同應用的開發(fā),可以設置為如表 1所示的五種值。

            本文選擇 編碼器。如果用戶成功選擇了一個編碼器,該函數(shù)返回TRUE,否則返回FALSE。通過一個指向COMPVARS結構的指針返回用戶通過對話框選擇的編碼器的壓縮參數(shù)信息并使用該壓縮參數(shù)進行圖像壓縮。

          c++相關文章:c++教程




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();