labview

opencv与labview的结合(升级版:彩色图像的传输)

ε祈祈猫儿з 提交于 2020-05-01 04:49:10
OK,上一篇讲完了opencv与Labview实现了黑白图像的传输,结尾有提到彩色图像的传输问题,我也自己试了一下,直接改变unsigned int8 char *data指针为unsigned int32 char *data,最后Labview并没有成功接收到彩色图像,经过网上的查找,有提到说这两者要是实现彩色图像传输,要借助图像的分离与融合,简单说就是把RGB图像的R、G、B三个通道拆分开来,然后逐个通道进行传输,有了上一篇的基础,已经知道了如何传输8bit的图片,实质就是单通道的功能,那么在实现彩色图像传输上也就有了更大的方便性。 原理比较简单,实现起来应该也不难,结果本人在尝试过程中却遇到了许多小问题,在这个过程中我会把要特别注意的细节问题用不同颜色注释: 首先是实现从opencv传输和一幅图像到Labview 关于DLL的创建也不再复述,不知道的可以查看往期的文章,这里主要讲DLL里面的实现代码 定义图像输出的函数名为outImage,函数主体如下: _declspec(dllexport) extern void outImage( int rows, int cols, unsigned __int8 *imageR, unsigned __int8 *imageG, unsigned __int8 * imageB) { Mat ImgSrc = imread(

<02>labSQL的配置和使用方法

依然范特西╮ 提交于 2020-05-01 04:04:23
任务布置: 制作简单地铁站点管理系统 <2> 要求一: 正确配置系统,建立基本正常的数据通道; 要求二: 实现地铁站点的登记,拥有查询功能; 正文:   今天介绍labview虚拟仪器软件中 labSQL 本地调用 Access数据库 使用的方法,首先了解整体设计的 思维导图 。   在思维导图中数据库是由 Access 产生并拥有绝对控制权;DNS是数据库服务站,今天介绍的Access Driver 是服务站里的一个窗口渠道,服务于整个计算机;labsql是labview的一个插件函数包,它的原理就是通过ActiveX控件调取计算机内部的数据控制方法,这里不详细介绍: 第一步:配置系统,让计算机开启数据库服务   安装Access2003后建立SFF.mdb数据库文件,数据库软件的使用自己学,添加一张空表,命名为:dtinfo;   ODBC数据源管理器中添加数据库服务启动服务。数据源管理器的路径是: [开始>控制面板>管理工具>ODBC数据源] ,打开后会看到有用户DNS、系统DNS、文件DNS,在用户DNS里点击添加,选择Access driver开始配置参数,如下图,数据源名称命名为:myDB ; 备注:64位系统的有两个数据源管理器,如果报错请到: [C:\Windows\SysWOW64\odbcad32.exe] 配置参数。  

opencv与Labview的结合(Dll调用)

泄露秘密 提交于 2020-05-01 03:51:57
为什么会有把二者结合这个想法,主要是在接触过这两种工具后,发现它们对图像处理有自己独特的优势,但也有自己的缺点,借助C++,opencv可以实现许多自己想实现的功能,但是在界面设计上得花另一番功夫,Labview的长处就在于它的界面设计简单,控件拖拽所见即所得,与QT有点类似,当然QT的跨平台性是labview比不了的,可是labview在功能实现上的快速性和简洁性也是较大的优势,对labview稍微熟悉一点即可实现许多强大的功能。(当然,用什么都只是工具,主要是掌握方法与思想) 话不多说,进入正题:软件版本Labview2015 64位英文版(要安装VISION Acquisition Software组件) 和 Visual Studio 2015, 注意生成的DLL要与Labview版本一致,都是64位才可以,否则会有其他的调用问题 。 一、从Labview传递图像数据到opencv中,经过图像处理后又将处理结果返回到Labview显示。(源图片来源于Labview这端) 我这里有两种图像数据来源,一种是直接调用本地图片,另一种是通过labview调用摄像头传输视频,可以做到实时的图像传输和图像处理。二者的区别只在Labview的设计上有稍许差别,Dll的内容是一致的。 既然DLL的内容一致,那就先介绍DLL的设计,前面几篇中有讲到VS如何创建DLL,可以翻看前面的内容

【LabVIEW技巧】代码块快速放置

一笑奈何 提交于 2020-04-30 12:58:38
前言 之前的文章中介绍了如何使用QuickDrop来实现快速代码放置,今天我们来详细的聊一下如何进行代码块的快速放置。 正文 LabVIWE程序设计中,我们在架构层级总是进行重复性的编写。举一个例子:大多数的工程师总是先画While循环,然后拖一个事件结构,这一套动作是编程风格形成的固化行为,重复操作意味着重复造车,浪费很多的时间。殊不知,通过快速放置可以快速实现一样的功能,节约很多低效编程时间。 最终实现的效果如下图所示: 代码放置前 代码放置后 设计步骤 下面我将详细的介绍如何实现上述的功能。 实现步骤1 设计需要复用的代码块,从较为复杂的架构到简单的代码均可,这里我设计了一个基本的事件结构 主要特性: 1.具备基本的错误处理环节 2.具有停止事件,超时时间,前面板关闭事件 主要用途: 在设计一些简单的测试Demo程序时,可以快速搭建需要的代码框架 实现步骤二 将代码保存到 X:\Program Files (x86)\National Instruments\LabVIEW 2015\user.lib 下 实现步骤三 设计一个便于后续区分的图标 实现步骤四 在菜单栏中打开Tools-->Advanced-->Edit Pallet Set... 实现步骤五 找到我们保存的VI,右键该VI,选择Place VI Contents 设置完成后,点击Save Changes

基于Arduino+LabVIEW的多路数据采集系统

◇◆丶佛笑我妖孽 提交于 2020-04-25 13:19:11
【注】一般认为上位机为主机,下位机为从机,上位机领导下位机按照上位机的意愿为上位机服务;同时下位机也可以主动向上位机发出请求,上位机响应下位机并配合完成某个请求。 数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。相应能够完成数据采集的系统被称为数据采集系统。 数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的信号,并送入计算机,然后将计算得到的数据进行显示或打印,以便实现对某些物理量的监测,其中一些数据还将被生产过程中的计算机控制系统用来控制某些物理量。 【文献1】 一、Arduino下位机部分 数据采集系统中的Arduino下位机部分采用Arduino Leonardo实验板,如图1所示。 图1 Arduino Leonardo控制板 Arduino下位机部分需要完成两个功能:数据采集和数据传输,Arduino Leonardo控制板通过串口接受上位机命令,完成相应的数据采集,并将数据回传至上位机。 数据采集分为模拟量采集和数字量采集,设置采集路数各为2路,分别采用Arduino UNO上具有模拟量输入的管脚A0、A1和具有数字量输入的管脚2、3来实现。模拟量采用接至GND、3.3V和5V来实现不同电压值,数字量采用接至5V和GND实现高电平与低电平。【注】 【注】如果有电位器,可以用来测量分压值。由于手头没有电位器

031202 创建虚拟仪器 01 —— 启动窗口

大城市里の小女人 提交于 2020-03-12 09:40:14
1. 创建可以产生一个信号并将信号在图形中显示的 VI 1. 预期结果 采集信号 VI 的前面板 2. 操作过程 1. 启动 LabVIEW 将出现 启动 窗口 启动窗口中可创建新的 VI,选择最近打开的 LabVIEW 文件、查找范例以及打开 LabVIEW 帮助 注:1. 打开现有文件或创建新文件后,启动窗口会消失 2. 关闭所有已打开的前面板和程序框图后 启动 窗口将再次出现 3. 在 前面板 或 程序框图 窗口中选择 查看 → 启动窗口,也可显示启动窗口 来源: https://www.cnblogs.com/azxsdcv/p/12467141.html

LabVIEW:自动化引用方法下Excel报表生成与存储子VI创建

我的梦境 提交于 2020-03-02 11:23:40
LabVIEW中,通过引用自动化函数可以实现Excel 报表生成与存储,并且其丰富的属性节点和方法,可以提供多种处理和操作 。 Excel报表 1.1 在前面板(控件—新式—引用句柄)添加“自动化引用句柄”,右键,点击ActiveX类,浏览并选择Microsoft Excel 16.0 Object ,在选择“ Excel._Application”,获取Excel引用句柄。 1.2 在程序框图中互联接口项点击ActiveX类,添加“打开自动化”,打开Excel自动化,并返回Excel自动化引用句柄。 1.3 在程序框图中互联接口项点击ActiveX类,添加“属性节点”,右键“属性节点”,选择选择类中ActiveX的Excel._Application,选择“Workbooks”属性。 1.4 在程序框图中互联接口项点击ActiveX类,添加“调用节点”,右键“方法”,右键“属性节点”,选择选择类中ActiveX的Excel. Workbooks,选择“Open”方法。其中Filename接打开文件地址加名字,所以添加文件路径输入控件,再转为字符串,如下图: 1.5 在程序框图中互联接口项点击ActiveX类,添加“属性节点”,连接上一个open的输出,方法选择worksheets。 1.6 在程序框图中互联接口项点击ActiveX类,添加“调用节点”

5.07-09制作DLL植入labVIEW

大憨熊 提交于 2020-02-19 17:44:41
上网查资料, VS 创建 WIN32 DLL 一、为什么需要 dll 代码复用是提高软件开发 效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架, 如 ATL 、 MFC 等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点 比较多,总结起来有 4 点。 暴露了源代码; 容易与程序员的“普通”代码发生命名冲突; 多份拷贝,造成存储浪费; 更新功能模块比较困难。 实际上,以上 4 点概括起来就是“暴露的源代码”造成“代码严重耦合”。为了弥补这些不足,就提出了“二进制级别”的代码复用。使用二进制级别的代码复用一定程度上隐藏了源代码,对于缓解代码耦合现象起到了一定的作用。这样的复用被称为“黑盒复用”。 在 Windows 操作系 统中有两种可执行文件,其后缀名分别为 .exe 和 .dll 。它们的区别在于, .exe 文件可被独立的装载于内存中运行; .dll 文件却不能,它只能被其它 进程调用。然而无论什么格式,它们都是二进制文件。上面说到的“二进制级别”的代码复用,可以使用 .dll 来实现。 与白盒复用相 比, .dll 很大程度上弥补了上述 4 大缺陷。 .dll 是二进制文件,因此隐藏了源代码;如果采用

Labview连接MySQL

醉酒当歌 提交于 2020-02-11 00:29:57
安装ODBC驱动 在 MySQL官网下载 ODBC的驱动 注意,ODBC的驱动下载的位数要和LabView的版本一样(我是64位的win10,Labview是2015版32位的) 2.进入控制面板——搜索数据源,(或者C:\Windows\System32\ odbcad32.exe)添加新数据源(如图所示,选择MySQL ODBC UnicodeDriver),点击完成 选择好Database后,可以点击旁边的Test测试一下。 进入Labview后,的后面板 建立连接的名称就是前面设置的DNS(数据源名称),运行,可以看到获取的数据,这里用的方法是执行完SQL语句后fetchall的方法,可以获取执行完代码的所有数据。也可以用前面的 ,可以直接获取数据。 来源: https://www.cnblogs.com/yinsedeyinse/p/12293535.html

用LabVIEW制作STM32外设驱动空文件懒人创建工具

荒凉一梦 提交于 2020-02-07 00:20:43
在学习STM32时,经常要针对一些外设,如LED、HX711模数转换、ADS1256,编写其驱动,需要手动建立如LED.h头文件和LED.c。我是个懒人,虽然平时要用的外设也不多,都已经有自己的库函数了,但还是利用LabVIEW做了一个创建.c .h文件的工具。 实现方式: 1.程序总体建立在while循环中的时间结构中,触发条件是“新建按钮”被按下,即运行条件结构中的程序。 2.利用“创建文件夹”控件路由到要创建文件夹的绝对路径,然后用“创建路径”控件接收上一部的绝对目标路径,并用“创建文件”控件接收上一步选择的路径和输入的文件名,拼接成.c或.h的绝对路径,使用“创建文件”接收上一部的路径创建文件,用“写入文本文件”控件接收上一部的句柄和文件内要写入的东西(如#include"stm32f10x.h"),然后关闭文件,至此文件创建和写入内容完成。 3.文件名和写入的内容与外设的名字有关(如外设为HX711,一般写为hx711.c和hx711.h),故用到拼接字符串函数。 4.最后,将各控件的错误合并,将其与用于终止while循环的按钮取或运算,这样,一旦你按终止按钮或者是程序运行中报错都可以及时终止运行。 程序框图: 运行中的前面板: 结果: 来源: CSDN 作者: Pilot.Phil 链接: https://blog.csdn.net/qq_37769785