@TOC

前言

明天咱们一起来应用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/1TEih...
提取码:8888

总结

更多对于LabVIEW与人工智能技术,可增加技术交换群进一步探讨。
qq群号:705637299,请备注暗号:LabVIEW 机器学习