王 爽 , 胡炳樑 , 劉彩芳 ,2, 王彩玲 , 錢情明 ,2
(1.中國科學院西安光學精密機械研究所 陜西 西安 710119;2.中國科學院研究所院 北京 100084;3.西安石油大學 計算機學院,陜西 西安 710065)
基于Matrox Meteor-II/Digital的圖像采集系統研究
王 爽1, 胡炳樑1, 劉彩芳1,2, 王彩玲3, 錢情明1,2
(1.中國科學院西安光學精密機械研究所 陜西 西安 710119;2.中國科學院研究所院 北京 100084;3.西安石油大學 計算機學院,陜西 西安 710065)
針對Matrox Meteor-II/Digital圖像采集卡配套軟件不具有實時數據處理功能的問題,根據項目需要提出了一個基于Matrox Meteor-II/Digital圖像采集卡的圖像采集系統,并完成了系統搭建及軟件設計。該系統的硬件平臺由CCD、Matrox Meteor-II/Digital圖像采集卡及計算機組成;軟件部分基于Matrox圖像采集卡的模式識別庫函數(Matrox Imaging Library),用VC++多線程編程來實現連續圖像采集和單幀存儲及實時處理等功能。試驗表明,該系統操作簡單、方便,且已經在實驗室正常運行。
圖像采集卡;連續圖像采集;單幀存儲;采集處理系統;多線程編程
簡單的計算機圖像處理系統由攝像頭、微機及圖像采集卡構成,其結構簡單,應用廣泛。與傳統的圖像顯示、處理比較,利用圖像采集卡軟件基本控制庫對攝像機攝取的模擬圖像信號進行數字轉化,提供計算機處理所需的數字圖像信號,對現有的圖像文件的讀取、處理,都具有實現簡單、原理清晰、通用性好的優點。
在眾多的圖像采集產品中,加拿大Matrox公司的圖像采集卡,別具特色。它用RS-422或LVDS差分信號標準,采集黑白/分量 RGB,面陣/線陣信號,是一種 PCI或 PC/104-Plus格式視頻采集卡。并且將極具價值且功能強大的函數擴展性能集成到了采集卡上,可以實時采集且將采集到的圖像傳輸到系統內存進行處理或顯存以實時活動視頻窗口進行顯示,速率可達130 MB/s。
正因為如此,使得Matrox Meteor-II/Digital圖像采集卡[1]脫穎而出。但是,由于其連續圖像采集不能實現實時存儲的功能,所以就對研究連續圖像的變化、圖像實時處理和分析帶來了極大的不便。于是,根據項目需要,文中提出了基于Matrox Meteor-II/Digital圖像采集卡的硬件平臺以及其圖像識別庫函數(MIL)的圖像采集系統[2-3],主要是在CCD攝像機的采集速率比較低 (例如:在圖片大小為1 024×1 024像素下,采集速率為4幀/秒)的情況下,調用MIL函數庫里的單幀采集函數來實現連續圖像實時采集、顯示及處理,并且把實時采集到的每幀圖像及處理結果都分別存儲。
針對實驗室中某航天項目中需要進行圖像實時采集處理的需求,結合Matrox Meteor-II/Digital圖像采集卡的硬件平臺以及其圖像識別庫函數(MIL),經過分析得到需要設計的系統如圖1所示:CCD捕捉外界的光信息并轉換為電信號,該電信號經傳輸到圖像采集卡采集,然后通過圖像采集卡的PCI借口將采集到的圖像數據傳送到計算機,在計算機中內存中進行實時處理及存貯,并同時顯示。

圖1 系統總體結構圖Fig.1 Structure diagram of the power control unit test system
要想完如上功能,必須做好如下事情。圖像采集卡要開辟卡上臨時存貯單元,以完成圖像數據的臨時存貯及處理;CCD采集速率不能太高,需要滿足下一幅圖像信息到來之前,本副圖像數據已經完成處理及存貯,這里選擇CCD采集速率為4幀/秒,符合試驗要求;在計算機種開辟內存,編寫相應的圖像處理程序。
該采集系統采用的CCD為非標準單色相機,實驗室自行購置并經過改進,采集速率為4幀/秒,每幀圖片大小為1024×1024像素。計算機為Windows XP系統平臺,1 G內存,160 G硬盤,CPU頻率為2.7 GHz。
圖像采集卡為Matrox Meteor-II/Digital圖像采集卡,該卡的主要特點[1]如下:
a.采集數字面陣/線陣信號,包括多抽頭配置
b.32-bit寬 RS-422 或 LVDS 接口 (可配置 4×8-bit,2×16-bit,1×32bit)
c.采樣率RS-422下達到25MHz,LVDS下達到 40 MHz
d.可配置 LUT(4 個 256×8-bit或 2 個 4 k×16-bit)
e.觸發輸入,時鐘輸出(分離的RS-422/LVDS像素時鐘(入和出),行/場同步(入和出),有效輸出和兩路計時器(曝光)輸出)
f.PCI總線主模式32-bit/33 MHz
g.實時傳輸到系統或顯卡
h.擴展板上緩存,確保采集
i.RS-232串口
j.軟件包括 Matrox Imaging Library(MIL)/ActiveMIL,MILLite/ActiveMIL-Lite和Matrox Inspector
Matrox公司圖像采集卡帶有豐富的程序庫—MIL-LITE(基本控制庫)和 MIL(Matrox Imaging Library 模式識別庫)[1],具有易于使用的特點。它通過引入“函數驅動層”,使源代碼具有硬件無關性,可實現對Matrox不同圖像采集卡以及不同CCD配置的操作和使用。在VC中調用圖像采集卡的圖像采集處理函數,就可以做到集成性好,信息獲取直觀,編程方便,實現圖像采集任意存儲的目的。故軟件系統采用Windows XP操作系統作為系統軟件運行平臺,在Windows XP下,利用VC++語言編程[4-5]通過調用MIL庫函數實現圖像采集。
利用MIL庫首先必須分配一個應用對象,相當于創建一個圖像處理的控制和執行環境,在應用對象下可以建立多個系統,一個系統下可以建立多個數據緩存、數字轉換器和數據顯示,將圖像文件讀入數據緩存,將緩存內容放到指定的文件,這樣就可以實現圖像的任意存儲和顯示。其軟件組織結構和流程圖如圖2所示。

圖2 系統軟件組織結構圖Fig.2 Structure diagram of the software system
在建立程序框架之前,需要將圖像采集卡自帶的安裝程序解壓,再利用VC++的MFC應用程序向導生成多文檔用戶操作界面[6],命名該工程為My。再將圖像采集卡文件夾里面的后綴名為.lib和.dll文件都復制到工程目錄下面,這里用添加靜態鏈接庫的方法調用MIL庫函數來實現的。用VC++6.0打開工程,在CMy.h中添加所需要的所有的頭文件,在Project->Settings->Link目錄下面的Category下面選擇Input選項,然后將所有的.lib文件完全名稱寫入Object/Library Modules下面的編輯框中,再在下面的Additional Library Path中輸入..lib,點擊“OK”。這樣,才可以正確調用MIL庫函數。
在CMy.h頭文件中添加定義:

在CMy.cpp源文件中對系統進行初始化:

在CMy.doc文件中的對MilImage進行初始化:

圖3 軟件設計流程圖Fig.3 Flow chart of the software design

這里采用多線程編程[7]的方法通過外部的按鈕控制圖像采集的中斷與繼續。首先定義全局函數MilCreat來實現圖像采集中的臨時存放 buffer(MilImageContinuous[0],[1])的初始化。定義全局變量stop,初值為false(stop用來控制圖像的采集與停止,stop的初始值為true,若stop為false表示開始采集,stop為true表示停止采集)。設置圖像存儲路徑及名稱后,調用如下線程:

線程函數的核心實現是通過一個for循環來實現,定義for(;;),循環結束事件為 stop=true。 實現如下:


這樣就可以實現圖像的實時顯示與存儲。根據不同的要求,也可以調用 Mil庫中的 MbufExportSequence()函數將連續采集中的圖像存儲到一個文件中形成AVI視頻流文件的格式,也可以存儲成.raw格式。采集到的圖像暫時存放在自己定義的buffer中,在保存到本地磁盤之前可以進行實時圖像處理,也可以根據要求設置采集的時間和采集的幀數。
該測試系統用于某型航天項目實驗室研制中的圖像采集處理應用。使用時,首先運行該測試應用軟件,初始化相關板卡后,然后通過點擊主程序界面的相應的菜單測試按鈕進行相應的圖像采集處理功能。其中圖像實時實現部分在程序啟動后中間空白部分就一直顯示CCD捕捉到的信息,但點擊實時存貯時,圖像會存貯在預先設定的計算機中的相應的目錄下面;點擊實時處理,可以調節圖像的開窗大小等。程序面板的部分界面如圖4所示。通過實驗室應用發現,該測試系統測試結果準確、穩定可靠。

圖4 軟件界面圖Fig.4 Interface chart of the software
該采集系統采用Matrox Meteor-II/Digital圖像采集卡與計算機為硬件平臺,軟件設計采用VC++軟件設計思想,提高了系統的可靠性和維護性。該測試系統已用于某航天項目實驗室圖像采集,實際應用表明該測試系統具有測試準確、穩定可靠、人機界面友好等特點,達到了設計要求。
[1]Matrox Electronic Systems Ltd.Matrox Meteor-II/Digital installation and hardware reference[S].CANADA,2002.
[2]吉志宏,劉曉平.基于圖像卡的圖像采集處理系統開發[J].儀表技術,2008(1):32-33,56.
JI Zhi-hong,LIU Xiao-ping.Development of image processing system based on image card[J].Instrumentation Technology,2008(1):32-33,56.
[3]關萍萍,翟正軍,姜紅梅,等.基于LabWindows/CVI測控系統通用報表的設計與實現 [J].計算機工程與設計,2010,31(1):203-205.
GUAN Ping-ping,ZHAI Zheng-jun,JIANG Hong-mei,et al.Design and implementation of universal control system report based on Labwindows/CVI[J].Computer Engineering and Design,2010,31(1):203-205.
[4]鄭莉,董源.C++語言程序設計[M].北京:清華大學出版社,2001.
[5]李雁妮,陳平,王獻青.C++程序設計語言[M].西安:西安電子科技大學出版社,2009
[6]黃維通.Visual C++面向對象與可視化程序設計[M].北京:清華大學出版社,2002.
[7]英特爾軟件學院教材編寫組.多核多線程技術 [M].上海:上海交通大學出版社,2011.
The research on real-time image grabbing and processing system of matrox Meteor-Ⅱ/Digital image grabbing board
WANG Shuang1, HU Bing-liang1, LIU Cai-fang1,2, WANG Cai-ling3, QIAN Qing-ming1,2
(1.Xi’an Institute of Optics and Precision Mechanics of CAS,Xi’an710119,China;2.Graduate University of Chinese Academy of Sciences,Beijing100084,China;3.School of Computer Science,Xi’an Shiyou University,Xi’an710065,China)
In order to solve the problem that real-time image process can’t be done with Matrox Meteor-II/Digital Image Grabbing,an real-time image grab and process system based on the image grabbing board has been proposed.The design of the system and software have been finished.The hardware platform of the system is consisted of CCD,Matrox Meteor-II/Digital Image Grabbing board and computer.The software has been developed with multi-thread program of VC++based on Matrox Imaging Library to realize the function of real-time continuous image grabbing,each frame storing theory and real-time image processing.It has been proved that this system performs and runs well in laboratory.
image grabbing board;continuous image grabbing;each frame storing;grabandprocesssystem;multi-thread program
TP302
A
1674-6236(2012)03-0071-04
2011-12-13 稿件編號:201112072
王 爽(1980—),男,陜西西安人,博士研究生,實習研究員。研究方向:信號與信息處理、光譜圖像處理。