前言
今天我們一起來使用LabVIEW AI視覺工具包快速實現圖像的讀取與顏色空間轉換、從攝像頭采集圖像。工具包的安裝與下載方法可見之前的兩篇博客。
一、工具包位置
已經安裝好的工具包位于程序框圖-函數選板-Addons-VIRobotics-opencv_yiku,內容包括:Mat類型(矩陣)的操作、攝像頭采集、圖片文件讀寫、基本算子、視頻生成、神經網絡調用等功能。
二、圖像采集與色彩空間轉換
1.文件讀寫
(1)程序框圖面板右鍵:File I/O,拖出拆分路徑和拼接路徑函數到程序框圖面板待用;
(2)程序框圖面板右鍵:File I/O -->File Constants,拖出當前路徑函數到程序框圖面板待用;
2.實現圖片讀取
(1)在程序框圖面板空白處右鍵-->在函數選板-->Addons-->VIRobotics-->opencv_yiku-imgcodes中找到要使用的imread函數,拖出;
(2)imread函數讀取指定路徑的圖片(jpg/png/bmp格式),返回Mat對象,具體輸入輸出如下所示:
(3)程序框圖面板右鍵:Application Control-->Property Node,將屬性節點拖出,用來獲取Mat對象中的各種參數(本例中是圖片),并放到圖片控件中;
(4)釋放Mat資源;
(5)按照下圖所示連接,將待讀取的圖片與此vi置于同一路徑下并運行;
(6)讀取圖片如下圖所示(左側為原圖,右側為讀取出來的圖片),我們發現讀取的圖片顏色和原圖不一樣;
3.使用算子cvtColor實現顏色空間轉換
(1)因為LabVIEW中的圖像排列順序是RGB,opencv中的圖像排列順序是BGR,所以讀取出來的圖片顏色和原圖不一樣;
(2)使用算子cvtColor進行顏色空間轉換,程序框圖面板右鍵: Addons-->VIRobotics-->opencv_yiku-->imgproc: cvtColor ,拖出;
(3)算子cvtColor的輸入與輸出如下圖所示:
(4) LabVIEW中算子(cvtColor)的使用方式一 :輸入的dst端不接輸入,運行函數后輸出的圖片會替換掉原來的圖片(src out和dst out的值一致),程序及結果如下圖所示:
(5) LabVIEW中算子(cvtColor)的使用方式二 :輸入的dst端接一個Create_Mat,即新建一個mat對象,運行函數后,dst的內容不會影響src的內容;程序及結果如下圖所示:
三、從攝像頭采集圖像
1.Camera類
(1)新建一個vi,在程序框圖面板右鍵:Addons-->VIRobotics --> opencv_yiku: Camera。找到攝像頭初始化函數new_Cap,函數右上角輸出Cap,是使用攝像頭前的必備動作,將其拖至面板空白處備用;
(2)在程序框圖面板右鍵:Addons-->VIRobotics --> opencv_yiku: Camera。找到startCaptura,將其拖至面板空白處,使用該函數若只填寫camerID時,請保障攝像頭正常。只要連接有preference,則有多個本地攝像頭時,優先使用分配到該ID的攝像頭,若該攝像頭不存在,則使用其它攝像頭。
(3)在程序框圖面板右鍵:Addons-->VIRobotics --> opencv_yiku: Camera。找到獲取圖像函數readImage,接在打開攝像頭之后,用以獲取攝像頭拍攝的圖像。 Mat輸出圖像(矩陣);
(4)在程序框圖面板右鍵:Addons-->VIRobotics --> opencv_yiku: Camera。找到停止拍攝函數stopCapture,接到程序最后,釋放攝像頭資源,若不操作,可能會造成下一次使用不便。
2.屬性節點
(1)程序框圖面板右鍵:Application Control : Property Node,拖出,接至startCaptura之后
(2)根據攝像頭實際支持的分辨率設置寬高。屬性的箭頭在右側表示讀取,只需右鍵選擇Change To Write即可修改為寫入。
3.實現攝像頭采集圖像
整體程序如下,使用循環采集圖像,點擊stop按鈕,循環結束,整個程序結束并釋放資源。
四、源碼下載
鏈接:https://pan.baidu.com/s/1TEihgoG5bIFz1SRCIab-mQ
提取碼:8888
總結
更多關于LabVIEW與人工智能技術,可添加技術交流群進一步探討。
審核編輯 黃宇
-
LabVIEW
+關注
關注
1974文章
3656瀏覽量
324119 -
人工智能
+關注
關注
1792文章
47354瀏覽量
238811
發布評論請先 登錄
相關推薦
評論