上位机图像处理和嵌入式模块部署(qmacvisual三个特色)

news2025/1/23 9:30:09

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        了解了qmacvisual的配置之后,正常来说,我们需要了解下不同插件的功能是什么。不过我们不用着急,可以继续学习下qmacvisual的三个特色,分别是链接属性、功能拓展和脚本处理。了解好这三个特色,对于我们进一步的插件算法学习和部署,其实是非常有利的。

1、链接属性

        所谓的链接属性,其实和图像处理的特殊性有一定的关系。一般的图像算法,或者说图像处理流程,后面算法的输入往往是前面图像的输出。所以,从这一点来说,这对软件设计来说就非常方便、非常友好。因为,fae自己就可以编辑流程,自由选择图像的输出结果。当然,这种链接不仅仅是图像,还有可能是全局变量,这一点在前面已经提到过。

2、算法插件拓展

        我们知道,现有的图像处理算法不可能满足所有的客户场景。总有一些特殊的场景、特殊的需求,依靠现在的算法或者说插件,是没有办法满足的。所以,这个时候,qmacvisual也为我们提供了类似的机制。我们只需要按照模板去编写代码,这样就可以生成对应的dll。而且,后续dll开发的同学哪怕不知道整个软件的架构,也能根据模板,在短时间内开发出插件,满足客户的要求,这一点是非常重要的。

3、脚本编写

        之前在讲解全局变量的时候,就说过脚本处理数据的事情。整个处理流程是这样的,某一个算法或者模块拿到数据之后,再送往另外一个模块之前需要进行某种计算,或者是某种条件判断。那么这种计算,或者是条件判断,写起来可能又不是很复杂,根本没有达到插件编写的程度,所以这个时候用脚本来进行处理是比较合适的。目前来说,qmacvisual支持java script脚本,脚本的内容是这样的,

//示例1
var state = true;
if (state == true)
{
    ProjectSetGlobalValue("变量名", "值");
}

//示例2
for (var i=0;i<3;i++)
{
    LogInfo(GetCurrentTime());
}

//示例3(数组类型)
var array= ProjectGetGlobalValue("变量名");
var count = GetArraySize(array);
for (var i=0;i<count;i++)
{
    LogInfo(ConvertToArrayFloat(array, i));
}

//示例4(QPoint或cv::Point类型)
var p = ProjectGetGlobalValue("变量名");
var p_x = ConvertToPoint(p, "x");
var p_y = ConvertToPoint(p, "y");

//示例5(QPointF或cv::Point2f类型)
var p2f = ProjectGetGlobalValue("变量名");
var p2f_x = ConvertToPoint2f(p2f, "x");
var p2f_y = ConvertToPoint2f(p2f, "y");

//示例6(cv::Point3f类型)
var p3f = ProjectGetGlobalValue("变量名");
var p3f_x = ConvertToPoint3f(p3f, "x");
var p3f_y = ConvertToPoint3f(p3f, "y");
var p3f_z = ConvertToPoint3f(p3f, "z");

//示例7(cv::Point3d类型)
var p3d = ProjectGetGlobalValue("变量名");
var p3d_x = ConvertToPoint3d(p3d, "x");
var p3d_y = ConvertToPoint3d(p3d, "y");
var p3d_z = ConvertToPoint3d(p3d, "z");

//示例8(Float[]类型)
var array_float = ProjectGetGlobalValue("变量名");
var f_element = ConvertToArrayFloat(array_float, 0);  //0表示获取数组索引0位置的值

//示例9(Double[]或vector<Double>类型)
var array_double = ProjectGetGlobalValue("变量名");
var d_element = ConvertToArrayDouble(array_double, 0);  //0表示获取数组索引0位置的值

//示例10(vector<QString>类型)
var code = GetFlowToolValue("条形码识别.条形码");
var str = ConvertToArrayQString(code, 0);  //0表示获取数组索引0位置的值

//示例11(vector<cv::Point2f>类型)
var center_points = GetFlowToolValue("轮廓特征选择.重心");
var p1_x = ConvertToArrayCvPoint2f(center_points,0, "x");  //0表示获取数组索引0位置的值
var p1_y = ConvertToArrayCvPoint2f(center_points,0, "y");  //0表示获取数组索引0位置的值

//示例12(QVector<Bool>类型)
var input = GetFlowToolValue("通用I/O.输入点");
var state = ConvertToArrayBool(input, 0);  //0表示获取数组索引0位置的值

//示例13(QVector<int>类型)
var plc = GetFlowToolValue("PLC通信.寄存器读取数据");
var data = ConvertToArrayInt(plc, 0);  //0表示获取数组索引0位置的值

        其中脚本的编写窗口如下所示,一个业务流程当中也可以有多个脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K倍区间 刷题笔记

法一 前缀和暴力搜索 &#xff08;数据大会超时&#xff09; #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int N100010; int a[N],s[N]; int n,k; int main(){ cin>>n>>…

面试题 -- UI控件

文章目录 一、CAAnimation的层级结构二、 UITableView优化三、离屏渲染四、Autolayout本质原理五、生成二维码的步骤 一、CAAnimation的层级结构 二、 UITableView优化 Cell复用机制Cell高度预先计算缓存Cell高度圆角切割 三、离屏渲染 指的是GPU在当前屏幕缓冲区以外新开辟…

Unity性能优化篇(九) 模型优化之LOD技术概述以及操作方法

LOD模型优化技术概述: 1.LOD技术可以根据摄像头远近来显示不同精度的模型(例如吃鸡游戏 随着跳伞高度 来显示下面树木以及建筑的模型精度) LOD模型优化技术操作方法: 可使用Unity自带的LOD Group组件&#xff0c;并根据项目的情况来调整该组件的属性。Untiy资源商店也有一些其…

Zabbix(三)

监控Nginx服务 nginx配置 增加location{} [rootwenzi ~]#vim /etc/nginx/sites-enabled/defaultserver_name _; #_是通配符。服务器将响应任何域名的请求 ...location /status { stub_status;} ...访问 http://IP/status 即可 zabbix配置 Nginx by HTTP&#xff1a;无…

VS2022打包C#安装包(最新、最全)

开发c#的一个小工具到打包环境碰壁了&#xff0c;在网上找了很多资料耶踩了很多坑&#xff0c;耗时1hour才打包完毕&#xff0c;避免以后碰到类似的问题再次记录&#xff0c;自认为步骤比较全面&#xff0c;如果有帮助麻烦点个赞呗&#xff01;&#xff01;&#xff01; 一、Mi…

Node.js 最佳实践:改善你的应用程序设计 | 开源日报 No.191

goldbergyoni/nodebestpractices Stars: 92.4k License: CC-BY-SA-4.0 Node.js Best Practices 是一个关于 Node.js 最佳实践的开源项目。该项目汇总了许多顶级内容&#xff0c;包括 80 多个最佳实践、样式指南和架构技巧。以下是该项目的核心优势和主要功能&#xff1a; 提供…

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

css3中nth-child属性作用及用法剖析

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 标题&#xff1a;CSS3中nth-child属性作用及用法剖析 摘要&#xff1a;CSS3中的nth-child选择器允许我们根据元素位置来定位特定的元素…

最简单的基于 FFmpeg 的 AVDevice 例子(读取摄像头)

最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09; 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09;简介libavdevice 使用注意事项源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像…

遥感与ChatGPT:科研中的强强联合

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐渗透到各个领域&#xff0c;为传统行业带来了前所未有的变革。其中&#xff0c;遥感技术作为观测和解析地球的重要手段&#xff0c;正逐渐与AI技术相结合&#xff0c;为地球科学研究与应用提供了全新的…

Android SDK2 (实操三个小目标)

书接上回&#xff1a;Android SDK 1&#xff08;概览&#xff09;-CSDN博客 今天讲讲三个实际练手内容&#xff0c;用的是瑞星微的sdk。 1 实操编译Android.bp 首先还是感叹下&#xff0c;现在的系统真的越搞越复杂&#xff0c;最早只有gcc&#xff0c;后面多了make&#xf…

Xilinx高级调试方法--远程调试

Xilinx高级调试方法--远程调试 1 虚拟电缆调试2 FPGA设计2.1 扩展配置接口 3 PCIe-XVC驱动3.1 PCIe-XVC驱动3.2 XVC-Server 4 Vivado Design Suite4.1 同一台主机4.2 不同主机 本文主要介绍Xilinx的一些高级调试方法&#xff0c;以及如何使用Xilinx的相关IP。 1 虚拟电缆调试 …

UR机器人装箱姿态

1.官网手册上并没有给出该打包位姿 2.一般厂家发回来的机器人都会有这个打包程序 可以运行这个程序&#xff0c;如果有的话。 3.打包点位 如果没有这个这个&#xff0c;也可以直接按下面点位来&#xff0c;都是差不多的点位&#xff0c;可以放到包装箱中的 这个是UR10的 这个…

linux系统上安装docker 并配置国内镜像

目录 1.安装docker 2.配置国内镜像源 1.安装docker 首先要安装一个yum工具 yum install -y yum-utils 安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo …

代码之旅:我的算法探索之路(一)力扣 两数之和 三数之和问题

LeetCode 第1题 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能…

【学习笔记】计算机视觉深度学习网络模型

这是本人学习计算机视觉CV领域深度学习模型的学习的一点点学习笔记&#xff0c;很多片子没有完成&#xff0c;可以作为学习的参考~

1.初识python

1.初识python 编程语言是用来定义计算机程序的语言&#xff0c;用来向计算机发出指令。 1.python语言是一种面向对象的解释型高级编程语言。 解释型语言&#xff1a;使用专门的解释器对源码程序逐行解释成特定平台的机器并立即执行&#xff0c;是代码在执行时才被解释器一行行…

Elasticsearch模拟网络丢包

背景 Elasticsearch一旦遇到网络抖动就可能节点&#xff08;单个或者多个&#xff09;掉出集群。从而集群出现red/yellow状态&#xff0c;理论情况下ES会自愈&#xff0c;但某些情况下可能非预期&#xff0c;此时就需要我们模拟各种case了&#xff0c;比如网络丢包。 操作 1…

Fabric V2.5 通用溯源系统——应用前端部分设计及简易二次开发

本节对Fabric V2.5 通用溯源系统的前端部分做一个简单的介绍。包括目录结构、文件作用简述、用户注册登录实现、农产品信息上链溯源实现的介绍。同时提供了简易二次开发的教程(面向需要在短时间内二次开发),将本项目修改为商品溯源项目,仅修改前端部分。本节内容需要订阅《…

BUUCTF--极客大挑战php

文章目录 1.网站备份文件www.zip2.下载后发现class.phpindex.phpflag.php 3.分析php代码绕过__wakeup方法变量权限为私有或保护python方法url方法 1.网站备份文件www.zip 2.下载后发现 class.php <?php include flag.php; error_reporting(0);class Name{private $usernam…