上位机图像处理和嵌入式模块部署(qmacvisual自己编写算法插件)

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

        前面我们说过,qmacvisual本身支持52个控件,但是指望这52个控件可以cover所有的应用场景,这也不太现实。另外,后续随着技术的发展,肯定还会有一些新的算法被提出来,所以上位机一定要提供一种算法扩展的机制,这样才能方便后面项目的实施。

        一开始的时候,我以为直接按照之前52种控件编写的方法,去模仿和参考别人的代码就可以了。后来通过代码阅读才发现,作者提供了一种套娃的方式来实现的。可能不这样做的话,直接按照那52种控件修改和展示,需要修改很多地方的代码,比较容易出错。所以他这边的处理方法就是先拖入一个控件的容器,然后在这个容器里面配置好我们写的控件。

1、容器控件

        容器控件的位置位于【逻辑工具】-》【扩展库】当中。如果需要使用的话,肯定和之前一样,先创建项目,再创建流程。这一切都ok之后,就可以把容器控件拖过来。单击之后,不出意外的话,窗口的界面是这样的,

2、容器控件分析

        如上图所示,整个控件有两个部分。一个是输入图像,也就是需要处理的图像从哪里进行输入;还有一个是动态库的存储路径,也就是后续我们需要自己编写的插件。容器控件是qmacvisual自带的,不需要我们写代码。

3、自己编写插件

        关于自己编写的插件,qmacvisual给出了一个模板,生成的dll文件就是上面截图种看到的ExtLibraryCase.dll。大家如果需要自己开发的话,直接看这个template模板就可以了。不想做特别大的修改,可以直接把它改个工程的名字,换一下核心部分的算法就行了。插件的结果输出也是一幅图像。还有,如果想看ExtLibraryCase.dll的界面效果,直接单击上面窗口中的设置按钮即可。不出意外,应该就可以看到这样的窗口,

4、插件内容分析

        和其他插件相比较,这个ExtLibraryCase.dll显示部分还是比较空的。大家可以根据需要,在窗口里面添加对应的小控件就可以了。需要显示效果,直接把输出图像显示在后侧的windows里面就行。当然仔细分析一下,作者之所以大费周章,采用了这种套娃的方法来实现插件的功能,大概是希望用户不要修改原来代码的内容因为每个人的开发能力是有差异。不然的话,很容易出现这种情况,那就是软件改着改着就改出毛病来了。

5、实现方法

        这种动态插件加载的方法,不管是windows平台,还是linux平台,原理都是一样的。不同的插件,自身都包含了相同的函数入口,直接加载对应函数入口就可以了。在widnows平台上面,加载函数叫LoadLibraryA;在linux平台,称之为dlopen。有兴趣的同学可以通过搜索引擎或者是chatgpt,去好好看一下对应的功能是怎么实现的。

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

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

相关文章

自定义方法SQL注入器-DefaultSqlInjector

/*** 自定义Sql注入* author zy*/ public class SqlInjector extends DefaultSqlInjector {Overridepublic List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {// 注意&#xff1a;此SQL注入器继承了DefaultSqlInjector(默认注入器…

2024 年排名前 5 名的 Mac 数据恢复软件分享

如果您已经在 Mac 上丢失了数据并且正在寻找恢复数据的方法&#xff0c;那么您来对地方了。互联网上有超过 50 个适用于 Mac 的数据恢复程序。哪个是最好的 Mac 数据恢复软件&#xff1f;不用担心。本文列出了 5 款 Mac 数据恢复软件&#xff0c;可帮助您在 Mac OS 下恢复丢失的…

探索信号处理:低通滤波器的原理与应用

在信号处理领域&#xff0c;滤波器的应用至关重要&#xff0c;它能够帮助我们从复杂的信号中提取需要的信息&#xff0c;而低通滤波器则是其中一种被广泛应用的滤波器类型。本文旨在深入探讨低通滤波器的基本原理、主要类型以及在实际应用中的作用和实现方式。 ### 1. 低通滤波…

【JavaScript 漫游】【036】CORS 通信总结

文章简介 CORS 是一个 W3C 标准&#xff0c;全称是“跨域资源共享”&#xff08;Cross-origin resource sharing&#xff09;。它允许浏览器向跨域的服务器&#xff0c;发出 XMLHttpRequest 请求&#xff0c;从而克服了 AJAX 只能同源使用的限制。 本篇文章为【JavaScript 漫…

N折交叉验证的作用

重点放在前面&#xff1a; N折交叉验证有两个用途&#xff1a;模型评估、模型选择。N折交叉只是一种划分数据集的策略。想知道它的优势&#xff0c;可以拿它和传统划分数据集的方式进行比较。它可以避免固定划分数据集的局限性、特殊性&#xff0c;这个优势在小规模数据集上更…

高频:spring知识

1、bean的生命周期&#xff1f; 主要阶段 初始化 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext67424e82: startup date []; root of context hi…

数据结构:7、队列

一、队列的概念与结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾 出队列&#xff1a;进行删除操作的一端称为队头…

动态规划概念

前言 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是一种优化问题求解方法&#xff0c;通常用于解决具有重叠子问题和最优子结构性质的问题。它的基本思想是将原问题分解成更小的子问题&#xff0c;通过求解和保存这些子问题的解&#xff0c;避免重复计…

电商数据分析20——电商平台用户分层与细分策略的数据分析

目录 写在开头1. 用户分层与细分的重要性1.1 用户分层与细分的定义1.2 对电商营销策略的影响2. 数据分析在用户分层与细分中的应用2.1 用户行为数据的收集与分析2.1.1. 数据收集机制2.1.2. 关键用户行为指标2.2 用户属性和行为的聚类分析2.2.1. 聚类分析在用户细分中的应用2.2.…

漫途桥梁结构安全监测方案,护航桥梁安全!

桥梁作为城市生命线的重要组成部分&#xff0c;承载着城市交通、物流输送、应急救援等重要职能。然而&#xff0c;随着我国社会经济的飞速发展&#xff0c;桥梁所承载的交通流量逐年增长&#xff0c;其安全性所面临的挑战亦日益严峻。例如恶劣的外部环境、沉重的荷载以及长期使…

memmove函数及其模拟实现

一、用法 memmove用于拷贝字节&#xff0c;如果目标区域和源区域有重叠的话&#xff0c;memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中&#xff0c;但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。 二、原型&#xff1a…

每天一个数据分析题(二百零七)

对某公司网站主色选择蓝色或紫色的两种方案进行对比测试&#xff0c;步骤可以不包括&#xff08;&#xff09; A. 提交审批&#xff1a;需经公司领导层会议决策通过 B. 确定目标&#xff1a;增加网站点击率 C. 开始实验: 网站主色,分为蓝色(A)和紫色(B)两个版本。其余网站元…

Linux下安装Android Studio及创建桌面快捷方式

下载 官网地址&#xff1a;https://developer.android.com/studio?hlzh-cn点击下载最新版本即可 安装 将下载完成后文件&#xff0c;进行解压&#xff0c;然后进入android-studio-2023.2.1.23-linux/android-studio/bin目录下&#xff0c;启动studio.sh即可为了更加方便的使…

MySQL学习Day32——数据库备份与恢复

在任何数据库环境中&#xff0c;总会有不确定的意外情况发生&#xff0c;比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的&#xff0c;这些情况可能会导致数据的丢失、 服务器瘫痪等严重的后果。存在多个服务器时&#xff0c;会出现主从服…

MATLAB使用OMP实现图像的压缩感知实例

OMP(Orthogonal Matching Pursuit)是一种用于稀疏信号恢复的迭代算法。它的目标是从一组测量值中重建具有少量非零元素的信号。 基本步骤 以下是OMP算法的简要步骤: 初始化残差: 将残差初始化为测量向量。 迭代过程: a. 原子选择: 在每次迭代中,从字典中选择与当前残差…

Codeforces Round 825 D. Equal Binary Subsequences 【思维】

D. Equal Binary Subsequences 题意 给定一个长度为 2 n 2n 2n 的 01 01 01 字符串 s s s&#xff0c;现在需要恰好使用一次下面的操作&#xff0c;将其划分为相等的两个子序列 定义操作&#xff1a; 选择某些下标&#xff0c;并这些下标代表的子序列向右循环移动一位 如…

SSA-LSTM多输入分类预测 | 樽海鞘优化算法-长短期神经网络 | Matlab

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&am…

Go Zero微服务个人探究之路(十六)回顾api服务和rpc服务的本质

目录 前言 正文 API&#xff08;Application Programming Interface&#xff09; RPC&#xff08;Remote Procedure Call&#xff09; API 与 RPC 的关系 分布式部署 API 和 RPC 结语 前言 go-zero 是一个基于 Go 语言的微服务框架&#xff0c;它提供了一套简洁的编程模…

code摘录日记[矩阵变元素,变列向量,3D表面图] Matlab

W1(Z1 < Z2) nan; % Z1,Z2 all matrix,Only plot points where Z1 > Z2;Z1 < Z2位置值填为NaNx x(:); % Now x is a 30-by-1 vector; matrix变列vector技巧hand figure; % Handle to the figure, for more plotting later set(gcf,Color,w) % White background sur…

图像处理与图像分析—图像统计特性的计算(纯C语言实现灰度值显示)

根据输入的灰度图像&#xff0c;分别计算图像的均值、方差等统计特征&#xff0c;并计算图像的直方图特征并以图形方式显示图像的直方图&#xff08;用C或C语言实现&#xff09;。 学习将会依据教材图像处理与图像分析基础&#xff08;C/C&#xff09;版内容展开 在上个笔记中&…