主頁(http://www.130131.com):試析監(jiān)控圖像處理系統(tǒng)的軟件結構與軟件包(2) 圖像基礎結構的核心部分以C/C++語言完成。因為C/C++語言編譯效率高,執(zhí)行速度快,這對于要處理大量數(shù)據(jù)的圖像應用來說是非常關鍵的;且C/C++語言非常靈活,使得圖像基礎結構可以高效的實現(xiàn),而用其他的語言實現(xiàn)某些相同的功能可能要花很大的精力;C/C++語言移植性強,幾乎可以移植到任何硬件和操作系統(tǒng)中。 圖像基礎結構的內(nèi)部實現(xiàn)可以使用C++,但是對外接口一律使用C界面。因為C++的名字解析方法沒有統(tǒng)一的標準,不同公司的C++編譯器對相同的C++符號解析得到的名字可能完全不同,因此不同C++編譯器生成的目標文件不能正確連接。這使得像Windows系統(tǒng)下具有C++接口的動態(tài)連接庫(DLL)的應用不太可行,所以對外接口使用C語言則沒有這個問題。 避免使用依賴于平臺的聲明、函數(shù)等,保持核心的可移植性。圖像核心定義和代碼只使用標準C數(shù)據(jù)類型和標準C庫(ANSI)調(diào)用。當需要高端應用時,圖像核心可以迅速移植到UNIX及其他平臺,使整個應用具備較強的移植能力和伸縮性。 目前,圖像基礎結構包含如下模塊: 由于面向幀存的圖像硬件系統(tǒng)的結構,以圖像幀存為核心,還包括圖像的輸入輸出和處理等模塊;而面向計算機內(nèi)存的圖像系統(tǒng)里,是以計算機內(nèi)存為核心,同樣包括有圖像的輸入輸出和處理等模塊。前者以整體硬件結構為主體,軟件似乎只是圖像處理和數(shù)據(jù)存儲,后者以整體軟件結構為主體,硬件則納入軟件的管理之下。這兩種系統(tǒng)結構的差別很大,但從功能來講,有其相似之處。 面向計算機內(nèi)存的圖像軟件系統(tǒng)結構,稱之為Windows圖像基礎結構,這種Windows圖像基礎結構的總體結構框圖。StdImage結構代表了一個圖像或圖像序列,所有的功能幾乎都圍繞它進行。它可以利用ImageFile模塊從圖像文件裝入圖像,或者將圖像寫入文件中。在Windows環(huán)境下,為了顯示或打印圖像,通常會使用DIB,此外,像掃描儀、攝像機等還會以DIB的形式向計算機輸入圖像,因此圖像基礎結構設有DibStdImage模塊,以便在DIB和StdImage之間進行快速轉(zhuǎn)換。圖像通信插入在網(wǎng)絡和StdImage之間,由此可以實現(xiàn)圖像的傳輸,而這種傳輸,是以內(nèi)存為媒介,它具有速度快的優(yōu)點。 圖像處理軟件包 圖像處理軟件包分為專用圖像處理軟件包和通用圖像處理軟件包,專用圖像處理都以軟件處理為主,解決特定的問題。通用圖像處理軟件包主要采用菜單形式,其算法相對比較簡單,只是要求具有一些初步的算法,但一定具有圖像輸入功能。 菜單一般有多級,主菜單里可以分為幾個大項,如文件管理、圖像獲取、圖像編輯、圖像二值化、邊緣增強、圖像量測、圖像變換等,每一個菜單大項的下級菜單又分若干小項,現(xiàn)以單屏圖像處理軟件包為例,簡要介紹菜單的各項內(nèi)容。 文件管理 圖像區(qū)域分為規(guī)則區(qū)域和不規(guī)則區(qū)域,規(guī)則區(qū)域通常指矩形區(qū)域,不規(guī)則區(qū)域通常指用鼠標器畫出來的一個封閉的單連通區(qū)域。 在規(guī)則區(qū)域的情況下,存儲圖像時常用鼠標器來確定所需存儲的區(qū)域,加載時又可以用鼠標器來確定所加載圖像的顯示位置。圖像處理常常按整幅圖像來進行,有時也把區(qū)域分為整幅圖像區(qū)域和局部圖像區(qū)域,由于整幅操作不再需要鼠標器來確定區(qū)域,因此可以簡化操作。 規(guī)則區(qū)域圖像的格式有自由格式和標準格式兩種。對于灰度圖像,自由格式文件的第一個字節(jié)為0,表示是灰度圖像,后兩個字節(jié)表示矩形區(qū)域的寬,接下來的兩個字節(jié)表示矩形區(qū)域的高,隨后是灰度圖像數(shù)據(jù),一個字節(jié)表示一個像素,每個像素按照從左到右、從上到下排列。對于彩色圖像,常用RGB基色的彩色空間。其自由格式文件的第一個字節(jié)為1,表示是彩色圖像,后兩個字節(jié)表示矩形區(qū)域的寬,接下來的兩個字節(jié)表示矩形區(qū)域的高,隨后是彩色圖像數(shù)據(jù),三個字節(jié)表示一個像素,順序是R,G,B,每個像素按照從左到右、從上到下的順序排列。標準格式的圖像文件有BMP,TIFF等格式,也有壓縮存儲的格式。 不規(guī)則區(qū)域的圖像存儲和加載比一般矩形區(qū)域復雜,首先遇到的是區(qū)域邊界的描述問題,一般有多邊形描述方法和鏈碼(chaincodes)描述方法。 不規(guī)則的圖像文件的結構。文件頭是一個CHAIN-HEAD型的結構體的對象;鏈碼數(shù)據(jù)就是從圖像起始掃描點(xs,ys)開始,以順時針方向沿區(qū)域外邊界曲線行走得到的各個節(jié)點的數(shù)據(jù),其數(shù)目由文件頭的code_size確定;掃描線的位置數(shù)據(jù)是若干個CHAIN_SORT型結構體的對象,數(shù)目由文件頭中的couple_size確定。 圖像獲取 |




