4

手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集(含源码) - virobo...

 1 year ago
source link: https://www.cnblogs.com/virobotics/p/16734119.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

今天我们一起来使用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与人工智能技术,可添加技术交流群进一步探讨。
qq群号:705637299,请备注暗号:LabVIEW 机器学习


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK