首页 > 其他分享 >手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集

手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集

时间:2023-03-02 17:06:48浏览次数:47  
标签:摄像头 读取 -- 手把手 工具包 LabVIEW 右键 面板 程序框图

(文章目录)

前言

今天我们一起来使用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,右键,面板,程序框图
From: https://blog.51cto.com/u_12812297/6096443

相关文章

  • 通过8个常用hook手把手教你封装hooks
    通过8个常用hook手把手教你封装hooksFE情报局 ​关注他 11人赞同了该文章对于使用react的同学来说,hook一定不陌生,但是如何封装hook以及在业务......
  • 手把手带你体验ChatGPT
    1、ChatGPT介绍ChatGPT,OpenAI研发的聊天机器人程序,于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还......
  • 单元测试利器——手把手教你使用Mockito
    作者:京东零售秦浩然从你成为开发人员的那一天起,写单元测试终究是你逃不开的宿命!那开发人员为什么不喜欢写单元测试呢?究其原因,无外乎是依赖。依赖其他的服务、依赖运行的环......
  • 手把手教你为基于Netty的IM生成自签名SSL/TLS证书
    1、引言对于IM聊天应用来说,为了提升安全性,对聊天消息加密是常规操作。众所周之,Netty是高性能的JavaNIO网络通信框架,因而用Netty来写IM是再正常不过了。网上关于为Netty......
  • LabVIEW|小技巧:Quick Drop(快速放置)的使用
      QuickDrop(快速放置)面板是LabVIEW的一个快速查找函数或者控件的选板,它提供一些快速查找函数的映射,在输入框内输入快捷映射或者名称,即可查找到对应的函数或控件。这个......
  • LabVIEW|小技巧:自定义属于自己的函数面板
      再实际的LabVIEW开发中,常常遇到这么一种情况,在一些场景,使用到某个子vi的频率非常之高,但在文件夹中找到它又颇麻烦。这个时候就可以在常用的函数面板中加入自己常用......
  • LabVIEW|小技巧:字符串转成数组
      最近遇到个小问题,我需要把一字符串中的关键词提取出来做判断,思考了一下,感觉放到数组里去就比较简单。  前提:已知了该串字符串的关键词有固定的位置;  例如->字......
  • ChatGPT手把手教你配置及使用,防踩坑
    一、为何ChatGPT会如此火?分析 ChatGPT 背后火的原因:微软大佬站台+马斯克名人宣传,本身就会带来很大的流量;而 ChatGPT 本身也是非常给力,发布了 GPT-3 模型,取名达芬奇......
  • 如何制作一个专业的NuGet包?手把手教!超级详细!绝对能学会!
    目录一,在NuGet上创建并获取APIKeys1.首先需用登录,直接用微软账户登录即可2.点击右上角菜单APIKeys,创建Key3.填写信息4.获取Key二,创建项目1.创建项目2.生成dll......
  • SVM之Libsvm工具包的安装教程(转载)
    SVM之Libsvm工具包的安装教程https://blog.csdn.net/qq_43493562/article/details/110918276  ......