前言

今天我们一起来使用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 机器学习

手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集(含源码)的更多相关文章

  1. 手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)

    前言 今天我们一起来使用LabVIEW AI视觉工具包快速实现图像的滤波与增强:图像灰度处理:阈值处理与设定:二值化处理:边缘提取与特征提取等基本操作.工具包的安装与下载方法可见之前的博客. 一.图像 ...

  2. 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

    前言 今天和大家一起分享如何使用LabVIEW调用pb模型实现物体识别,本博客中使用的智能工具包可到主页置顶博客LabVIEW AI视觉工具包(非NI Vision)下载与安装教程中下载 一.物体识别 ...

  3. 《手把手教你》系列技巧篇(六)-java+ selenium自动化测试-阅读selenium源码(详细教程)

    1.简介 前面几篇基础系列文章,足够你迈进了Selenium门槛,再不济你也至少知道如何写你第一个基于Java的Selenium自动化测试脚本.接下来宏哥介绍Selenium技巧篇,主要是介绍一些常用 ...

  4. 【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前言 前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5.本次主要是和大家分享使用LabVIEW快速实现yolov5的物体 ...

  5. 自学Linux Shell9.4-基于Red Hat系统工具包存在两种方式之二:源码包

    点击返回 自学Linux命令行与Shell脚本之路 9.4-基于Red Hat系统工具包存在两种方式之二:源码包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方式 ...

  6. 手把手教你使用LabVIEW OpenCV DNN实现手写数字识别(含源码)

    @ 目录 前言 一.OpenCV DNN模块 1.OpenCV DNN简介 2.LabVIEW中DNN模块函数 二.TensorFlow pb文件的生成和调用 1.TensorFlow2 Keras模 ...

  7. 【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,实现YOLOv5实时物体识别(含源码)

    前言 上一篇博客给大家介绍了LabVIEW开放神经网络交互工具包[ONNX],今天我们就一起来看一下如何使用LabVIEW开放神经网络交互工具包实现TensorRT加速YOLOv5. 以下是YOLOv ...

  8. 手把手教你使用LabVIEW实现Mask R-CNN图像实例分割

    前言 前面给大家介绍了使用LabVIEW工具包实现图像分类,目标检测,今天我们来看一下如何使用LabVIEW实现Mask R-CNN图像实例分割. 一.什么是图像实例分割? 图像实例分割(Instan ...

  9. 手把手教你使用LabVIEW OpenCV dnn实现图像分类(含源码)

    @ 目录 前言 一.什么是图像分类? 1.图像分类的概念 2.MobileNet简介 二.使用python实现图像分类(py_to_py_ssd_mobilenet.py) 1.获取预训练模型 2.使 ...

随机推荐

  1. Solution -「Luogu 5170」类欧几里得算法

    推柿子大赛了属于是. 题目要求三个柿子,不妨分别记为: \[\begin {align} f (a, b, c, n) &= \sum \limits _{i = 0} ^{n} \lfloo ...

  2. Nginx第三方模块Ngx-dyups安装过程

    Ngx-dyups是什么,能干什么 它是一个Nginx第三方动态Upstream配置模块,可以实现在不重启Nginx情况下动态更新反向代理Upstream表.该模块由淘宝开发团队维护,淘宝自家的Ten ...

  3. for_in循环

    for-in循环也可以简单称为for循环 in表达从(字符串,序列等)中依次取值,又称为遍历(全部都要取到) for-in遍历的对象必须是可迭代对象 目前可以简单认为只有字符串和序列是可迭代对象 它是 ...

  4. websocket心跳实现

    简介 在实际项目中可能会使用到websocket,在使用过程中可能会存在一种问题就是,当网络异常断开时.或者websocket服务波动时,websocket会断开,导致异常,正常情况下,我们会采用心跳 ...

  5. 修改 hosts

    不会牛逼操作 -1. 位置.格式 所有系统都差不多,都是 啥啥/etc/hosts 这样的 . 具体去查即可 . 格式: ip + 域名 域名不能含有通配符 hosts 可以绕过 dns 解析,直接访 ...

  6. Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。

    前方: 开源地址:https://github.com/cyq1162/Taurus.MVC 上篇文章介绍过:工业制造行业的低代码开发平台思维架构图 规划中涉及到了微服务,近些天经过努力和不断的代码与 ...

  7. Tomcat启动失败 提示Server Tomcat v7.0 Server at localhost failed to start.六种解决方法

    Tomcat启动失败,提示Server Tomcat v7.0 Server at localhost failed to start 在一次查看自己以前写过的项目中,运行tomcat失败,出现如图提 ...

  8. RabbitMQ 入门系列:2、基础含义理解:链接、通道、队列、交换机

    系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...

  9. 文件分享工具ShareLocalFile不需要云盘的实时上传下载文件的云盘工具可以搜索整个网络的文件

    工具的下载地址:https://comm.zhaimaojun.cn/AllSources/ToolDetail/?tid=9693 这是一个未来的项目,可以分享我们的文件,目前由于个人的技术水平限制 ...

  10. 计算机网络-DNS和HTTPDNS了解

    DNS 和 HTTPDNS DNS 域名解析的过程 传统 DNS 存在的问题 1.域名缓存问题 2.域名转发问题 3.出口 NAT 问题 4.DNS 域名更新问题 5.解析延迟问题 6.运营商劫持 H ...