<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 淺析監控圖像處理系統的軟件結構

淺析監控圖像處理系統的軟件結構

作者: 時(shí)間:2011-01-20 來(lái)源:網(wǎng)絡(luò ) 收藏
視頻圖像數據的顯示問(wèn)題,目前都是利用Windows API函數SetDIBitsToDevice實(shí)現圖像數據從緩沖區到顯示設備之間的傳送。絕大多數顯卡的硬件功能支持SetDIBitsToDevice,當硬件不支持時(shí),Windows將提供經(jīng)軟件模擬的SetDIBitsToDevice函數。由于有統一的規范,不需要關(guān)心所選用的顯卡的具體細節,同是顯示模式的問(wèn)題也迎刃而解了。由于圖像數據的傳輸由顯卡的硬件完成,所以能達到很好的效果。

本文引用地址:http://dyxdggzs.com/article/156761.htm

Windows圖像軟件系統的基礎結構

  在Windows操作系統且采用單屏方式的條件下,要對圖像進(jìn)行處理,就必須將圖像裝入內存。當物理內存不足時(shí),系統通過(guò)內存分頁(yè)交換,利用硬盤(pán)空間模擬內存。應用程序使用統一的系統內存管理,代碼簡(jiǎn)單,維護方便,還具有自動(dòng)伸縮性。

  圖像作為一個(gè)處理對象放到內存中,必須使用數據結構來(lái)描述它,這就是圖像數據結構。對于任何一個(gè)圖像應用程序來(lái)說(shuō),圖像數據總是應用程序數據的核心部分。

  應用程序的所有功能幾乎都是圍繞它進(jìn)行的。如文件讀寫(xiě)、掃描、拍攝、處理、顯示、打印等,都需要建立、訪(fǎng)問(wèn)圖像數據,實(shí)際上都是以圖像數據結構核心為中心的。即使是最簡(jiǎn)單的圖像顯示軟件,也需要圖像文件讀取和圖像顯示兩大部分。

  一個(gè)圖像軟件系統,包括不同的圖像處理算法、圖像顯示、掃描儀或攝像機支持、圖像采集卡支持、圖像文件格式轉換等,都涉及到圖像數據結構。如果我們建立了一個(gè)以圖像數據結構為核心的Windows圖像軟件系統的基礎結構,就建立了一個(gè)完整的軟件圖像環(huán)境。

  圖像基礎結構包括圖像數據結構核心和圍繞此核心構造的周邊模塊。圖像數據結構核心是居于中心位置的。周邊模塊包括圖像文件格式支持、圖像顯示、圖像處理等。

  在設計過(guò)程中,要注意以下幾個(gè)問(wèn)題:

圖像基礎結構的核心部分以C/C++語(yǔ)言完成。因為C/C++語(yǔ)言編譯效率高,執行速度快,這對于要處理大量數據的圖像應用來(lái)說(shuō)是非常關(guān)鍵的;且C/C++ 語(yǔ)言非常靈活,使得圖像基礎結構可以高效的實(shí)現,而用其他的語(yǔ)言實(shí)現某些相同的功能可能要花很大的精力;C/C++語(yǔ)言移植性強,幾乎可以移植到任何硬件和操作系統中。

  圖像基礎結構的內部實(shí)現可以使用C++,但是對外接口一律使用C界面。因為C++的名字解析方法沒(méi)有統一的標準,不同公司的C++編譯器對相同的C++符號解析得到的名字可能完全不同,因此不同C++編譯器生成的目標文件不能正確連接。這使得像Windows系統下具有C++接口的動(dòng)態(tài)連接庫(DLL)的應用不太可行,所以對外接口使用C語(yǔ)言則沒(méi)有這個(gè)問(wèn)題。

  避免使用依賴(lài)于平臺的聲明、函數等,保持核心的可移植性。圖像核心定義和代碼只使用標準C數據類(lèi)型和標準C庫(ANSI)調用。當需要高端應用時(shí),圖像核心可以迅速移植到UNIX及其他平臺,使整個(gè)應用具備較強的移植能力和伸縮性。

  目前,圖像基礎結構包含如下模塊:

  ·StdImage:圖像數據結構核心以及對此核心進(jìn)行操作的基本函數;

  ·ProgressStub:進(jìn)度處理機制的定義和接口;

  ·VirtualFile:虛擬文件I/O界面;

  ·Vf_file:虛擬文件I/O的實(shí)際文件實(shí)現;

  ·Vf_memory:虛擬文件I/O的內存文件實(shí)現;

  ·ImageFile:虛擬圖像文件讀寫(xiě)界面;

  ·Jfit_file:虛擬圖像文件讀寫(xiě)界面的JPEG格式實(shí)現;

  ·Bmp-file:虛擬圖像文件讀寫(xiě)界面的BMP格式實(shí)現;

  ·Fgi_file:虛擬圖像文件讀寫(xiě)界面的自由灰度圖像格式實(shí)現;

  ·DibStdImage:DIB(設備無(wú)關(guān)位圖)與StdImage之間的轉換;

  ·mess_util:難以歸類(lèi)的雜項輔助功能;

  ·ProgressWinHint:Windows下的一個(gè)進(jìn)度處理機制實(shí)現;

  ·WinMessUtilities:Windows下的難以歸類(lèi)的雜項輔助功能。

  由于面向幀存的圖像硬件系統的結構,以圖像幀存為核心,還包括圖像的輸入輸出和處理等模塊;而面向計算機內存的圖像系統里,是以計算機內存為核心,同樣包括有圖像的輸入輸出和處理等模塊。前者以整體硬件結構為主體,軟件似乎只是圖像處理和數據存儲,后者以整體軟件結構為主體,硬件則納入軟件的管理之下。這兩種系統結構的差別很大,但從功能來(lái)講,有其相似之處。

  面向計算機內存的圖像軟件系統結構,稱(chēng)之為Windows圖像基礎結構,這種Windows圖像基礎結構的總體結構框圖如圖2所示。在圖2中,StdImage結構代表了一個(gè)圖像或圖像序列,所有的功能幾乎都圍繞它進(jìn)行。它可以利用ImageFile模塊從圖像文件裝入圖像,或者將圖像寫(xiě)入文件中。在Windows環(huán)境下,為了顯示或打印圖像,通常會(huì )使用DIB,此外,像掃描儀、攝像機等還會(huì )以DIB的形式向計算機輸入圖像,因此圖像基礎結構設有DibStdImage模塊,以便在DIB和StdImage之間進(jìn)行快速轉換。圖像通信插入在網(wǎng)絡(luò )和StdImage之間,由此可以實(shí)現圖像的傳輸,而這種傳輸,是以?xún)却鏋槊浇?,它具有速度快的?yōu)點(diǎn)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>