@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 机器学习