曹營修 鄭雨昊 鄭立評 朱建杰
摘 要: 簡述火炮窺膛錄像設(shè)備主要硬件組成及功能,運用Visual Studio 2010可視化集成環(huán)境,基于Visual C#.NET開發(fā)火炮窺膛錄像設(shè)備軟件,設(shè)計軟件功能,實現(xiàn)6大功能模塊。將數(shù)據(jù)流實時傳輸?shù)接嬎銠C(jī)中,于軟件界面視頻窗口觀測身管內(nèi)膛狀態(tài),并且具有錄像數(shù)據(jù)留存功能。通過實炮實驗得知,軟件兼容火炮窺膛錄像設(shè)備,通過IP地址、用戶名和密碼登錄后能夠清晰觀測身管內(nèi)部形貌,并可實現(xiàn)錄像保存等功能。
關(guān)鍵詞: Visual C#.NET; 火炮窺膛; 視頻錄像; 軟件開發(fā); 可視化; 數(shù)據(jù)流
中圖分類號: TN946?34; TP319 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2018)22?0045?04
Abstract: The main hardware composition and functions of the artillery spying bore video recording device are briefly described. The software of the artillery spying bore video recording device is developed based on Visual C#.NET by using the Visual Studio 2010 visualizable integration environment. The software functions are designed to realize six functional modules. The data flow is transmitted to the computer in real time. The inner bore state of the barrel is observed from the video window of the software interface which has the function of retaining and saving the video recording data. The results of the real gun experiment show that the software is compatible with the artillery spying bore video recording device, the internal shape of the barrel can be clearly observed after login with the IP address, user name and password, and video preservation and other functions can be achieved.
Keywords: Visual C#.NET; artillery spying bore; video recording; software development; visualization; data flow
火炮作為陸軍作戰(zhàn)的主要后方支援武器,為前沿部隊提供火力壓制和火力支援[1]。身管是火炮的核心部件,其內(nèi)膛質(zhì)量狀態(tài)的好壞直接影響著射擊精度和使用安全[2]。所以,在其生產(chǎn)、驗收和使用過程中對火炮進(jìn)行窺膛檢測有重要意義。
隨著光電技術(shù)的發(fā)展,窺膛方式通常采用攝像頭、圖像采集卡和計算機(jī)構(gòu)成的圖像處理系統(tǒng)[3?6]。因此,基于Visual C#.NET應(yīng)用Visual Studio平臺構(gòu)建火炮窺膛錄像設(shè)備系統(tǒng)軟件 [7],開發(fā)視頻采集與錄像軟件,面向?qū)ο笾苯娱_發(fā),利用可視化界面設(shè)計,實現(xiàn)功能模塊化。
應(yīng)用光機(jī)電控制技術(shù)和CCD成像技術(shù),結(jié)合身管內(nèi)膛結(jié)構(gòu)特點設(shè)計火炮窺膛錄像設(shè)備。該設(shè)備通過四目曲柄鏈?zhǔn)礁Q膛攝像頭裝置獲取身管內(nèi)膛全景圖像,維修技術(shù)人員通過計算機(jī)的窺膛錄像軟件實時觀察內(nèi)膛表面形貌,對內(nèi)膛疵病進(jìn)行定性檢測,識別與分析疵病類型,測量疵病所處身管位置,同時可操控窺膛頭裝置進(jìn)行拍攝和錄像等操作。將內(nèi)膛狀態(tài)信息自動保存于以炮號命名的文件夾中,在火炮返修時可實現(xiàn)后期回放,了解火炮窺膛階段身管狀態(tài),為評估身管提供參考,以作為火炮勤務(wù)保障依據(jù)。
1.1 硬件基本組成
火炮窺膛錄像設(shè)備[8]如圖1所示。其硬件部分主要有四目曲柄鏈?zhǔn)礁Q膛攝像頭裝置(簡稱窺膛頭裝置)、定位支撐裝置、激光測距裝置、主機(jī)(錄像機(jī)與計算機(jī))和相關(guān)附件。
1.2 設(shè)備功能
系統(tǒng)總體設(shè)計框架如圖2所示,定位支撐裝置通過莫氏錐度連接頭與窺膛頭裝置相接,為窺膛頭裝置提供穿越身管的軸向移動定位支撐;窺膛頭裝置實現(xiàn)對身管內(nèi)膛周向全覆蓋拍攝;通過窺膛頭裝置獲取四路模擬視頻信號,每路視頻流相互獨立;將獲取的視頻流通過信號線接入4路硬盤錄像機(jī),進(jìn)行視頻信號的采集、壓縮與存儲。
窺膛錄像設(shè)備的主機(jī)采用錄像機(jī)和計算機(jī)雙機(jī)系統(tǒng),錄像機(jī)采用嵌入式操作系統(tǒng),CPU型號為海思3798M,實現(xiàn)圖像和視頻的采集、壓縮與存儲工作;計算機(jī)采用Window 7 X86操作系統(tǒng),CPU 型號為Intel i3,實現(xiàn)圖像處理與窺膛檢測工作。設(shè)置計算機(jī)與錄像機(jī)IP地址位于同一網(wǎng)段,相同子網(wǎng)掩碼,兩者通過百兆以太網(wǎng)連接構(gòu)成局域網(wǎng),滿足視頻傳輸帶寬要求,實現(xiàn)計算機(jī)端實時觀測內(nèi)膛狀態(tài)不會出現(xiàn)卡頓現(xiàn)象。
2.1 開發(fā)平臺
Visual Studio作為Microsoft公司制作的一種開發(fā)基于.NET Framework應(yīng)用程序的可視化集成環(huán)境,具有強大的圖像處理功能,可以用于直接生成Windows桌面應(yīng)用程序和控制臺應(yīng)用程序等。所采用的C#語言[9]由C和C++語言衍生出來,以.NET Framework為平臺,面向?qū)ο蟮木幊陶Z言[10],不僅具有C++的高性能、低級內(nèi)存訪問等強大功能,而且開發(fā)周期短;完全支持類和面向?qū)ο缶幊?,包括接口和實現(xiàn)虛函數(shù)和運算符重載;可自動清理動態(tài)分配的內(nèi)存[11]。窺膛錄像軟件選用Visual Studio 2010集成環(huán)境進(jìn)行C#編程。
2.2 軟件功能設(shè)計
窺膛錄像主要實現(xiàn)以下幾種功能:
1) 數(shù)據(jù)采集。其實現(xiàn)窺膛攝像頭視頻流的數(shù)據(jù)采集控制,通過錄像機(jī)壓縮,傳輸?shù)接嬎銠C(jī)中,在窺膛錄像軟件界面框顯示身管內(nèi)膛狀態(tài)。
2) 窺膛錄像軟件設(shè)置。設(shè)置錄像軟件的IP連接地址和端口,以及用戶名與密碼登錄,保證數(shù)據(jù)安全和防止誤刪;設(shè)置視頻顯示窗口;設(shè)置點擊錄制按鈕自動建立以火炮唯一出廠編號(簡稱炮號)為文件名的文件夾,并將錄像存儲其內(nèi);設(shè)置激光測距裝置測量鏡頭進(jìn)深顯示窗,以及數(shù)據(jù)保存和Excel導(dǎo)出按鈕;設(shè)置光源亮度調(diào)節(jié)按鈕。
3) 視頻監(jiān)測。在視頻顯示四窗口火炮內(nèi)膛實時圖像,進(jìn)行身管內(nèi)膛疵病檢測。
4) 數(shù)據(jù)留存。以后綴名為.MP4格式的視頻方式將火炮身管內(nèi)膛圖像和相關(guān)參數(shù)留存,方便以后作為火炮返修依據(jù)。
2.3 軟件功能模塊
在Visual Studio 2010集成環(huán)境下開發(fā)Windows Forms界面,火炮窺膛錄像軟件主要包括程序載入、配置文件讀/寫、設(shè)備登錄、圖像實時播放、文件流讀/寫和日志生成等功能模塊,如圖3所示。
1) 程序載入
窺膛錄像設(shè)備在進(jìn)行身管檢測前,利用窺膛軟件初始化全局變量。窗體窺膛錄像軟件的構(gòu)造函數(shù)Form1()中,首先進(jìn)行界面UI元素初始化,下一步初始化程序配置信息,接著將硬件設(shè)備參數(shù)初始化,最后將所有的SDK日志進(jìn)行保存。
2) 配置文件讀/寫
采用Init方法讀/寫配置文件app.config的對應(yīng)配置的值,并賦值給對應(yīng)的參數(shù)。
3) 設(shè)備登錄
采用Login方法,首次登錄時需輸入錄像機(jī)的IP地址、端口數(shù)、用戶名和密碼等各項參數(shù),本軟件有記憶功能,以后登錄只需輸入密碼即可。
4) 圖像實時播放
采用Preview方法構(gòu)造預(yù)覽視頻通道,視頻為四通道接口,顯示身管內(nèi)膛周視全景圖像。采用UI控件句柄賦值IntPtr預(yù)覽設(shè)備通道,確定碼流類型及連接方式。
接下來輸入炮號,點擊錄制按鈕即可進(jìn)行錄像,錄像文件會自動保存于以炮號命名的文件夾中。
5) 文件流讀/寫
系統(tǒng)類System.IO.Directory定位文件目錄,獲取、打開指定文件路徑。文件流讀寫程序框圖如圖4所示。
運用火炮窺膛錄像設(shè)備,在某型號口徑為100 mm的牽引火炮上進(jìn)行身管檢測實驗。將窺膛錄像設(shè)備按圖1所示方式連接,把窺膛頭裝置和定位支撐裝置從炮尾放入藥室,激光測距裝置安裝于炮尾端面,信號線建立主機(jī)分別與窺膛頭裝置和激光測距裝置的通信。如圖5所示為窺膛實驗準(zhǔn)備工作完成。
打開窺膛錄像軟件,將IP地址、端口數(shù)、用戶名和密碼各項參數(shù)輸入對應(yīng)框,點擊連接按鈕,登錄成功后,即可在窺膛錄像軟件界面觀察到內(nèi)膛形貌,將顯示如圖6所示界面。維修技術(shù)人員可以在左側(cè)四界面窗口觀測身管內(nèi)膛狀態(tài),輸入6位炮號后,點擊錄制按鈕,可將身管內(nèi)膛錄像存儲于指定文件內(nèi),方便以后火炮二次維修時數(shù)據(jù)提取,為火炮勤務(wù)保障提供依據(jù)。軟件可以連接激光測距裝置顯示每個攝像頭所處身管位置,并且支持光源亮度調(diào)節(jié)功能。
本文基于Visual C#.NET運用Visual Studio 2010開發(fā)平臺,開發(fā)設(shè)計了火炮窺膛錄像設(shè)備系統(tǒng)軟件,實現(xiàn)圖像采集、視頻監(jiān)測、錄像留存、測距裝置控制模塊整合和光亮調(diào)節(jié)等功能。在火炮擦拭后,進(jìn)行實炮實驗得知,與火炮窺膛錄像設(shè)備兼容,觀測到清晰流暢的內(nèi)膛形貌圖像,同時可以獲得錄像時間和所處通道數(shù)及攝像頭所處身管位置,將錄像視頻保存于以炮號命名的文件夾,在火炮返修時回放鑒疵,為勤務(wù)保障提供依據(jù)。通過調(diào)整火炮窺膛錄像設(shè)備的相關(guān)參數(shù)后,可用于管道檢測。
參考文獻(xiàn)
[1] 談樂斌.火炮概論[M].北京:北京理工大學(xué)出版社,2014.
TAN Lebin. Introduction to artillery [M]. Beijing: Beijing Institute of Technology Press, 2014.
[2] 高望,張金,王瑾玨.火炮身管無損檢測方法[J].火力與指揮控制,2015,40(7):16?19.
GAO Wang, ZHANG Jin, WANG Jinjue. Study on non?destructive detection methods of gun barrels [J]. Fire control & command control, 2015, 40(7): 16?19.
[3] 司騫,蔡懷宇,黃戰(zhàn)華,等.基于USB2.0的CMOS圖像實時采集系統(tǒng)設(shè)計[J].電子測量技術(shù),2007,30(4):117?119.
SI Qian, CAI Huaiyu, HUANG Zhanhua, et al. Design of a real?time acquisition system of CMOS image based on USB 2.0 [J]. Electronic measurement technology, 2007, 30(4): 117?119.
[4] 于子江,婁洪偉,于曉,等.LabVIEW應(yīng)用于實時圖像采集及處理系統(tǒng)[J].微計算機(jī)信息,2007,23(13):98?100.
YU Zijiang, LOU Hongwei, YU Xiao, et al. Real?time image acquisition and processing system on LabVIEW [J]. Microcomputer Information, 2007, 23(13): 98?100.
[5] ZENG Zhiqiang, HUANG Pingping. Palmprint recognition using Gabor feature?based two?directional two?dimensional linear discriminant analysis [C]// Proceedings of International Conference on Electronic & Mechanical Engineering and Information Technology. Harbin: IEEE, 2011: 1917?1921.
[6] 徐其法,朱戰(zhàn)立.基于Visual C#.NET平臺的數(shù)字圖像處理及其實現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(20):121?122.
XU Qifa, ZHU Zhanli. Implementation of digital image processing based on Visual C#.NET [J]. Modern electronics technique, 2007, 30(20): 121?122.
[7] 杜聰,杜文華,曾志強,等.基于Visual C#的圖像實時采集及處理[J].計算機(jī)工程與設(shè)計,2014,35(8):2939?2943.
DU Cong, DU Wenhua, ZENG Zhiqiang, et al. Real?time acquisition and processing of images based on Visual C# [J]. Computer engineering and design, 2014, 35(8): 2939?2943.
[8] 鄭立評,曹營修,曹進(jìn)華,等.火炮身管檢測窺膛錄像裝置:CN201720046900.9 [P].2017?08?08.
ZHENG Liping, CAO Yingxiu, CAO Jinhua, et al. Artillery barrel detection spying bore video recorder: CN201720046900.9 [P]. 2017?08?08.
[9] 李春葆,蔣林,陳良臣,等.C#語言與數(shù)據(jù)庫技術(shù)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2016.
LI Chunbao, JIANG Lin, CHEN Liangchen, et al. Basic course in C# language and database technology [M]. Beijing: Tsinghua University Press, 2016.
[10] 夏敏捷,羅菁.Visual C#.NET基礎(chǔ)與應(yīng)用教程[M].北京:清華大學(xué)出版社,2014.
XIA Minjie, LUO Jing. Visual C#.NET foundation and application tutorial [M]. Beijing: Tsinghua University Press, 2014.
[11] 徐宙,劉連照,程彥杰,等.基于C#的數(shù)字存儲示波器控制軟件設(shè)計與實現(xiàn)[J].計量與測試技術(shù),2016,43(2):53?55.
XU Zhou, LIU Lianzhao, CHENG Yanjie, et al. Design and realization of control software for digital storage oscilloscope based on C# [J]. Metrology & measurement technique, 2016, 43(2): 53?55.