?

基于LabVIEW平臺的實時圖像采集與處理系統的應用

2016-10-14 06:44楊文祥杜昭平莊肖波
電子設計工程 2016年12期
關鍵詞:調用圖像處理攝像頭

楊文祥,杜昭平,莊肖波

(1.江蘇科技大學電子信息學院,江蘇鎮江212003;2.鎮江比太系統工程有限公司江蘇鎮江212009)

基于LabVIEW平臺的實時圖像采集與處理系統的應用

楊文祥1,杜昭平1,莊肖波2

(1.江蘇科技大學電子信息學院,江蘇鎮江212003;2.鎮江比太系統工程有限公司江蘇鎮江212009)

針對工業領域里普通攝像機采集圖片模糊不清、無法辨認等問題,提出了在LabVIEW、MATLAB和NI-IMAQ Vision軟件平臺下,利用USB攝像頭、動態鏈接庫以及NI-IMAQ Vision視頻處理模塊開發了一種實時圖像采集處理虛擬儀器系統。系統對現場連續采集的視頻和圖像進行處理,包括對實時視頻進行錄制保存、拍照保存、抓拍截圖保存以及LabVIEW調用MATLAB對保存的真彩圖片進行增強處理。彩圖增強方法是將彩色圖像分解到R、G、B 3個灰度圖,分別對3個灰度圖分量進行增強處理,最后使用MATLAB的cat函數將R、G、B三分量整合成彩色圖。實驗結果表明,該系統采集圖片快捷,能夠改進彩圖質量,提高肉眼對彩圖的可視性。

LabVIEW;USB攝像頭;動態鏈接庫;MATLAB;增強

目前雖然國內視頻采集技術已經相當成熟,但主要局限于視頻監控這一領域,內嵌具有圖像處理功能的配套系統卻少之又少,加之圖像采集與處理系統存在諸多弊端,例如:開發周期長、通用性差、成本高、采集到的圖像模糊不清、無法辨認等問題。所以設計一款價美物廉、通用性強、性能穩定的圖像采集與處理系統就顯的尤為重要。

LabVIEW是通用的編程系統,使用圖形化編程語言,用它開發的軟件亦稱虛擬儀器[1],能夠提供廣泛的接口,可以與DLL、MATLAB、Visual Basic等多種軟件交互調用。LabVIEW同時附帶擴展庫函數,在自身配備的工具不能完成一些任務時,就可以調用專業的數據采集和處理工具包擴展庫,進行強大的專業數學分析等。

為了滿足工程需求,鑒于LabVIEW諸多功能優點,本系統采用美國國家儀器(NI)公司的虛擬儀器開發平臺LabVIEW作為軟件編程平臺,采用NI-IMAQ Vision中的NIIMAQ模塊、NI-IMAQdx模塊以及普通的USB攝像頭來實現視頻圖像的采集,通過調用動態鏈接庫CameraDLL.dll以此實現對實時視頻或圖像進行抓拍截圖保存功能,借助LabVIEW腳本與公式模塊,采用MATLAB Script節點調用MATLAB圖像處理算法以此實現對采集的圖像進行增強處理[2],該系統具有操作簡單、編程容易、易于開發等優點。

1 系統總體架構

使用LabVIEW圖形化編程語言編寫系統功能,使用NIIMAQ Vision中的NI-IMAQ模塊、NI-IMAQdx模塊以及普通的USB攝像頭進行視頻圖像的實時采集與錄制;通過調用動態鏈接庫CameraDLL.dll對實時視頻圖像進行抓拍截圖保存;借助LabVIEW腳本與公式模塊中的MATLAB Script節點來調用MATLAB圖像處理算法對實時圖像進行增強處理。該系統可以分為兩部分實現,一部分為上位機即測試用臺式工控機,并且內置NI公司的LabVIEW專業版開發系統軟件,主要完成視頻圖像的顯示、拍照保存、視頻錄制保存、視頻圖像的截圖抓拍保存與圖像增強處理等任務;另一部分為下位機即工控機外置普通USB攝像頭,主要完成對現場場景的實時采集等任務。其系統總體架構如圖1所示。

圖1 系統總體架構圖

2 視頻圖像采集過程

視頻圖像采集、錄制、抓拍截圖等功能的實現需要使用到NI-IMAQdx模塊和NI-IMAQ模塊,這就要求用戶軟件平臺安裝NI公司的Vision Acquisition Software模塊與Vision Development Module模塊[3]。

2.1實時視頻采集及拍照

實時視頻圖像采集及拍照局部框圖程序如圖2所示。其實現步驟如下:

視頻采集:程序中Session In首先指定了包含連接于PC機全部的USB攝像頭的字符串數組。系統默認選擇數組的第一個元素即前面板Cam0為測試用USB攝像頭。函數面板中使用IMAQdx Open Camera.vi連接并打開前面板選定的Cam0攝像頭,加載攝像頭的配置文件,繼而使用IMAQdx Congigure Grab.vi來配置并開始采集圖像。采集過程中通過IMAQdx Grab.vi獲取輸出圖像的當前幀,IMAQ Create.vi對獲取圖像的子VI設置緩存空間。最后IMAQ Dispose.vi釋放圖像所占的緩存空間。視頻圖像采集完之后,使用IMAQdx Close Camera.vi停止獲取圖像并關閉USB攝像頭。視頻圖像通過LabVIEW中的Image Display控件呈現在前面板上。

圖2 實時視頻采集及拍照框圖程序

拍照:將IMAQ Create.vi緩存空間中的視頻圖像經由IMAQ Write File.vi按照選定的文件格式寫入,圖像格式有BMP、JPEG、PNG和TIFF等,在這里圖片格式選擇BMP類型[4]。在IMAQ Write File.vi的輸入端口File Path處創建路徑,即可在事件結構中將拍到的圖像通過IMAQ Write File.vi按照指定的路徑保存起來。拍照方式分為連續拍照和斷續拍照兩種方式。連續拍照:將IMAQ Write File.vi放置于事件結構中,在條件結構內設置一個加1加法器與事件結構外圍的While循環構成移位寄存器,能夠實現連續拍照,有序保存。斷續拍照:將File Dialog設置好類型端口和提示端口后與IMAQ Write File.vi對應端口相連,置于事件結構中,即可實現按照自己設定的路徑和圖像名稱來保存。

2.2實時視頻錄制

視頻錄制:首先用Vision Utilities中File下AVI里的IMAQ AVI Create.vi在條件結構內創建一個*.avi文件,用來保存將要存儲的視頻文件,然后經由While循環內的IMAQ AVI Write Frame.vi以每秒設定幀數將圖片記錄下來,寫入到AVI引用句柄指定的AVI文件中,最后用條件結構內的AVI close.vi關閉AVI保存,即完成了實時視頻的錄制工作。為了使保存的視頻或圖片能夠記錄視頻拍攝的時間,對于抓取到的圖像添加時間文本[5]。程序中使用IMAQ Draw Text.vi將獲取的時間添加至圖像上,如圖3所示。

圖3 添加時間至圖像上

2.3實時視頻抓拍截圖

系統通過調用相關子VI程序來實現截圖,將子VI程序放入事件結構中,通過大循環外的截圖按鈕事件觸發子VI程序實現截圖[6]。動態鏈接庫是一個可以被其它應用程序共享的程序模塊,其中封裝了一些可以被共享的例程和資源。關于截圖子VI功能的編寫,系統中使用的是調用動態鏈接庫的方法。調用動態鏈接庫方法:首先需要下載截圖鏈接庫CameraDll.dll,選擇函數選板互連接口中的庫與可執行程序,拖放調用庫函數節點至函數面板中,右擊庫函數節點進行配置。經過試驗發現鏈接庫中CameraSubArea函數是截圖的入口函數,繼而對該鏈接庫進行參數設置,設置函數的返回類型為整形,數據類型為有符號32位整形。截圖過程判斷:動態鏈接庫中的截圖函數的返回值設置為int型,該條件結構外添加了一個比較器,當截圖動作完畢返回1,輸出結果為真,觸發條件結構程序;放棄截圖動作則返回0,輸出結果為假。

截圖顯示于前面板:首先創建一個調用節點于函數面板中,右擊該調用節點選擇剪切板中的獲取圖像,然后根據調用節點的剪切板中的獲取圖像的元素與按照名稱捆綁相連,繼而創建繪制平化像素圖和二維圖片控件,視頻截圖效果圖,如圖4所示。其中繪制平滑像素圖是用來將剪切板上的圖像數據繪制到二維圖片控件上去。

圖4 實時視頻抓拍截圖前面板效果圖

3 實時圖像增強處理的實現

為了彌補LabVIEW工具箱內圖像處理算法的局限性,采用了LabVIEW和MATLAB混合編程[7]的方法,對采集到的圖片進行增強處理。在LabVIEW中利用MATLAB Script節點調用MATLAB進行圖像處理[8]的過程:在框圖程序窗口中通過功能函數-數學-腳本與公式-MATLAB Script,打開MATLAB Script節點,通過添加輸入輸出完成MATLAB Script節點的參數傳遞,在節點邊框上鼠標右擊選擇“添加輸入”或“添加輸出”,在此我們直接定義輸入變量類型為path,設置原圖像路徑為輸入量。

圖5 LabVIEW與MATLAB混合編程圖像處理前面板效果圖

在系統程序框圖中,現場采集到的彩圖通過Read JPEG File.vi讀入,經由Read JPEG File.vi的路徑端口輸出,通過一個Input節點傳至MATLAB Script節點中,圖像路徑變量賦值給a,執行圖像灰度變換,將彩色圖像分解到R、G、B 3個灰度圖,分別對3個灰度圖分量進行增強處理[9],最后使用MATLAB程序中的cat函數將R、G、B三分量整合成彩色圖,彩色灰度直方圖均衡后的圖像經由MATLAB顯示函數輸出圖像[10]。Read JPEG File.vi的另一輸出端為圖像數據端,系統為了讓原彩圖能夠實現窗口自適應大小,在圖像數據端將圖像數據按名稱解除捆綁輸出圖像的4個簇元素:left,top,right,bottom。4個簇元素的輸出經過數學運算處理后對圖像高度和寬度進行了設置,最終將高度與寬度輸出至圖像的繪圖區域大小屬性,改變彩圖的寬度和高度。圖像顯示是通過繪制平化像素圖顯示在LabVIEW的前面板上,從而完成MATLAB與LabVIEW的混合編程,實現彩圖增強處理[11],其效果圖如圖5所示。

LabVIEW與MATLAB混合編程中MATLAB Script節點導入的MATLAB圖像增強處理源程序分析[12]步驟如下:

第一步:在MATLAB Script上定義原彩色圖像為路徑變量a;

第二步:讀取原彩色圖像相關信息、測量原圖像尺寸參數及顯示原圖像;

第三步:將彩色圖像分解到R、G、B 3個灰度圖[13],并分別對3個灰度圖分量進行增強處理,以分量R灰度圖增強為例。首先將原彩圖圖片轉為灰度圖,并將數據存入數組中,計算各灰度出現的概率,然后計算每級灰度出現的頻率,將其存入gp中相應位置,隨后計算新的各灰度出現的概率,最后計算Sk值,將Sk規劃到最近的灰度,填充各像素點新的灰度值,最終將各個像素歸一化后的灰度值賦給當前像素[14];

第四步:在圖像處理中,使用MATLAB程序中的cat函數將R、G、B三分量整合成彩色圖[15],并經由MATLAB顯示函數輸出圖像。

4 結論

本文在LabVIEW、MATLAB和NI-IMAQ Vision軟件平臺下,使用USB攝像頭、動態鏈接庫函數以及NI-IMAQ Vision視頻處理模塊開發了一種實時圖像采集處理虛擬儀器系統。通過NI-IMAQ Vision中的NI-IMAQ模塊、NI-IMAQdx模塊以及普通的USB攝像頭完成了視頻圖像的采集、拍照及錄制;通過調用動態鏈接庫CameraDLL.dll實現了實時視頻圖像的抓拍截圖保存;借助LabVIEW腳本與公式模塊中MATLAB Script節點來調用MATLAB圖像處理算法實現了彩圖增強處理的目的。該系統提高了視頻圖像采集速率,豐富了圖像采集與處理的功能,突破了常規視頻監控模式,增添了圖像增強處理功能,解決了工業領域普通攝像頭采集圖片模糊不清的問題,系統能夠很好的應用到工業領域和日常生活中。

[1]鄭對元.精通LabVIEW虛擬儀器程序設計[M].北京:清華大學出版社,2012.

[2]宋廣東,王昌,王金玉,等.基于DLL技術和COM組件技術實現LabVIEW和MATLAB混合編程[J].計算機應用與軟件,2013,30(1):287-289.

[3]郭漭,祝連慶,韓曉泉,等.基于LABVIEW的CMOS相機圖像采集系統設計[J].自動化應用,2014(3):15-17.

[4]闞鈺淇,張寧,徐熙平.LabVIEW平臺下USB圖像采集與處理系統設計[J].工業儀表與自動化裝置,2013(6):80-83.

[5]吳仁濤,姜云海,左建勇.基于LabVIEW平臺的USB視頻采集方法與應用[J].工業儀表與自動化裝置,2011(3):80-82.

[6]闞鈺淇,徐熙平.基于LabVIEW的截圖保存系統設計[J].設計與研發,2013(18):9-10.

[7]曲麗蓉,胡容,范壽康.LabVIEW、MATLAB及其混合編程技術[M].北京:機械工業出版社,2011.

[8]袁培鐸.基于LabVIEW與MATLAB混合編程的應用研究[J].機械制造與自動化,2007(6):129-211.

[9]林振衡,宋駱林,黃元慶.基于LabVIEW的電子散斑干涉圖像處理系統[J].廈門大學學報:自然科學版,2013,52(1): 43-47.

[10]陳霞,衛靜婷.基于MATLAB的圖像增強處理與應用[J].科技廣場,2013(3):73-76.

[11]武劍,杜云剛,甘世明.MATLAB在虛擬儀器平臺LabVIEW中的調用研究[J].科技信息,2011(21):523-524.

[12]宋玉婷.基于三維彩色直方圖均衡化的彩色圖像增強算法研究[D].山東:山東財經大學,2013.

[13]楊丹,趙海濱,龍哲,等.MATLAB圖像處理實例詳解[M].北京:清華大學出版社,2013.

[14]張濤,齊永奇.MATLAB圖像處理編程與應用[M].北京:機械工業出版社,2014.

[15]任杰.彩色圖像增強算法的研究與實現[D].武漢:武漢理工大學,2013.

Application of real-time image acquisition and processing system based on LabVIEW platform

YANG Wen-xiang1,DU Zhao-ping1,ZHUANG Xiao-bo2
(1.School of Electronic and Information,Jiangsu University of Science and Technology,Zhenjiang 212003,China;2.Zhenjiang Bittek System Engineering Co.,LTD,Zhenjiang 212009,China)

Focused on the issue that images collected by ordinary camera are blurred and unrecognizable in industrial field,a virtual instrumentation system is presented which uses USB camera,dynamic link library and NI-IMAQ Vision video processing module to complete real-time image collection and processing under LabVIEW,MATLAB and NI-IMAQ Vision software platform.The system deals with continuous collecting video and images on the spot,including real-time video recording preservation,camera preservation,capture screenshot preservation and the LabVIEW calling MATLAB to enhance the preserved true color images.Image enhancement method is to decompose color images to R,G,B three grayscales,respectively,to enhance three grayscale weight,finally use cat function of MATLAB to integrate R,G,B three components into color maps.The simulation results show that the system quickly collects color images and improves quality and visibility of color maps to naked eye.

LabVIEW;USB camera;dynamic link library;MATLAB;enhance

TN911.73

A

1674-6236(2016)12-0159-03

2015-12-06稿件編號:201512063

國家自然科學基金資助項目(61304249,61374063)

楊文祥(1990—),男,江蘇鹽城人,碩士研究生。研究方向:光電測控技術與儀器、虛擬儀器等。

猜你喜歡
調用圖像處理攝像頭
浙江首試公路非現場執法新型攝像頭
攝像頭連接器可提供360°視角圖像
核電項目物項調用管理的應用研究
基于ARM嵌入式的關于圖像處理的交通信號燈識別
基于圖像處理的機器人精確抓取的設計與實現
機器學習在圖像處理中的應用
基于系統調用的惡意軟件檢測技術研究
基于圖像處理的定位器坡度計算
奔馳360°攝像頭系統介紹
利用RFC技術實現SAP系統接口通信
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合