当前位置: 首页 > news >正文

上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

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

        工业场景中,很多时候图像是用来做测量的。虽然我们很希望载台是平的,摄像头是正对着拍摄物体的,但是运行时间长了总会出现各种各样的偏差,尤其是有电机振动的时候。那么这种情况下,就需要重新进行标定了。标定的方法和之前的畸变矫正一样,就是找一个标准的斑点治具,上面各个斑点之间的高度和宽度,都是可以转成对应的世界坐标。利用这个标准的器件,以及拍摄到的图像,就可以计算得到一个新的透视矩阵,这样对于其他获取到的像素点,就可以找到对应的世界坐标了。

1、创建项目和创建流程

        首先还是需要创建项目、创建流程,这是使用qmacvisual软件很重要的一步。

2、导入图像

        导入的图像一般就是拍摄到的斑点图。可以一次处理一个,也可以一次处理多个。导入的方法,就是利用【获取图像】插件来完成。

3、N点标定

        N点标定的插件的位置,位于【标定工具】下面。直接把它用鼠标拖到流程窗口即可。N点标定的基本做法就是,依次1-》9标定好各个圆点的中心位置,接着将这些数值和实际坐标放到一个表格里面,这样就可以获得一个透视计算矩阵,这是我们希望得到的最终结果。

        这里我们完成的主要是九点标定。有两个地方需要配置,第一个就是输入的图像,第二个是熟练掌握找圆工具。标定的顺序是按照如上图所示的顺序依次进行的,即从中心点开始,逆时针完成。

        找圆的话,这部分我们之前也提到过。一般也是两个步骤。第一部分,添加一个ROI对象,第二部分,对参数进行设置。这两部分都ok之后,单击获取圆心按钮,就可以在图像上看到效果,同时在左下角会输出一个圆心坐标,也就是圆心的像素坐标,这个数值记录下来。做好了这一个圆点之后,继续完成其他2、3、4、5、6、7、8、9点,记录他们的像素坐标。

        完成这些像素坐标之后,就可以开始标定设置了。所谓的标定设置,就是把像素坐标和世界坐标放在一起供后面的计算使用。注意,这里需要选择九点标定参数。最后,单击执行按钮,就可以在输出显示tab中获得我们想要的结果。

        如图所示,整个输出包含了透视矩阵中的参数(A/B/C/D/E/F)、x方向单像素的宽度、y方向单像素的宽度、基准点的世界坐标、基准点的物理坐标。

4、后续像素坐标转世界坐标

        有了上面的输出之后,实际上我们就可以通过这个透视矩阵计算像素坐标、世界坐标之间的映射关系了。这部分,其实【对位关系】里面的【线性计算】说的也是这个,但不知道什么原因,使用的时候一直报错。现在我们把对应的转换公式放在这里,有需求的同学可以直接用这个公式进行计算。比如,我们完全可以通过script进行计算,这也是非常合适的。

tPoint.x = static_cast<float>(A * pPoint.x + B * pPoint.y + C);
tPoint.y = static_cast<float>(D * pPoint.x + E * pPoint.y + F);

        其中pPoint代表了像素坐标,tPoint代表了世界坐标。

相关文章:

上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业场景中&#xff0c;很多时候图像是用来做测量的。虽然我们很希望载台是平的&#xff0c;摄像头是正对着拍摄物体的&#xff0c;但是运行时间长…...

Francek Chen 的128天创作纪念日

目录 Francek Chen 的128天创作纪念日机缘收获日常成就憧憬 Francek Chen 的128天创作纪念日 Francek Chen 的个人主页 机缘 不知不觉的加入CSDN已有两年时间了&#xff0c;最初我第一次接触CSDN技术社区是在2022年4月的时候&#xff0c;通过学长给我们推荐了几个IT社区平台&a…...

PyTorch之Torch Script的简单使用

一、参考资料 TorchScript 简介 Torch Script Loading a TorchScript Model in C TorchScript 解读&#xff08;一&#xff09;&#xff1a;初识 TorchScript libtorch教程&#xff08;一&#xff09;开发环境搭建&#xff1a;VSlibtorch和Qtlibtorch 二、Torch Script模型格…...

vscode 连接远程服务器 服务器无法上网 离线配置 .vscode-server

离线配置 vscode 连接远程服务器 .vscode-server 1. .vscode-server下载 使用vscode连接远程服务器时会自动下载配置.vscode-server文件夹&#xff0c;如果远程服务器无法联网&#xff0c;则需要手动下载 1&#xff09;网址&#xff1a;https://update.code.visualstudio.com…...

arm开发板移植工具mkfs.ext4

文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中&#xff0c;可以通过勾选e2fsprogs工具来安装mkfs.ext4工具&#xff1a; Target packages -> Filesystem and flash utilit…...

某盾滑块拼图验证码增强版

介绍 提示&#xff1a;文章仅供交流学习&#xff0c;严禁用于非法用途&#xff0c;如有不当可联系本人删除 最近某盾新推出了&#xff0c;滑块拼图验证码&#xff0c;如下图所示&#xff0c;这篇文章介绍怎么识别滑块距离相关。 参数attrs 通过GET请求获取的参数attrs, 决…...

这个世界万物存在只有一种关系:博弈

$上证指数(SH000001)$ 我能给各位最大的帮助可能就是第一个从红警游戏引入了情绪周期视角的概念&#xff0c;而这个概念可以帮助很多人理解市场成为一种可能性&#xff0c;如果不理解可以重新回归游戏进行反复体验&#xff0c;你体验的足够多&#xff0c;思考的足够多&#xff…...

c#让不同的工厂生产不同的“鸭肉”

任务目标 实现对周黑鸭工厂的产品生产统一管理&#xff0c;主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅&#xff0c;南京工厂只能生产鸭翅&#xff0c;长沙工厂只能生产鸭脖。 分析任务 我们需要有武汉工厂、南京工厂、长沙工厂的类&#xff0c;类中需要实现生产鸭…...

大数据分析与内存计算——Spark安装以及Hadoop操作——注意事项

一、Spark安装 1.相关链接 Spark安装和编程实践&#xff08;Spark3.4.0&#xff09;_厦大数据库实验室博客 (xmu.edu.cn) 2.安装Spark&#xff08;Local模式&#xff09; 按照文章中的步骤安装即可 遇到问题&#xff1a;xshell以及xftp不能使用 解决办法&#xff1a; 在…...

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文&#xff1a;https://arxiv.org/pdf/2103.10039.pdf 代码&…...

3D模型格式转换工具HOOPS Exchange如何将3D文件加载到PRC数据结构中?

HOOPS Exchange是一款高效的数据访问工具&#xff0c;专为开发人员设计&#xff0c;用于在不同的CAD&#xff08;计算机辅助设计&#xff09;系统之间进行高保真的数据转换和交换。由Tech Soft 3D公司开发&#xff0c;它支持广泛的CAD文件格式&#xff0c;包括但不限于AutoCAD的…...

c# wpf Template ContentTemplate

1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 <Window x:Class"WpfApp2.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…...

空和null是两回事

文章目录 前言 StringUtils1. 空&#xff08;empty&#xff09;&#xff1a;字符串&#xff1a;集合&#xff1a; 2. null&#xff1a;引用类型变量&#xff1a;基本类型变量&#xff1a; 3. isBlank总结&#xff1a; 前言 StringUtils 提示&#xff1a;这里可以添加本文要记录…...

UNIAPP(小程序)每十个文章中间一个广告

三十秒刷新一次广告 ad-intervals"30" <template><view style"margin: 30rpx;"><view class"" v-for"(item,index) in 100"><!-- 广告 --><view style"margin-bottom: 20rpx;" v-if"(inde…...

pip包安装用国内镜像源

一&#xff1a;临时用国内源 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider&#xff0c;这样就会从清华这边的镜像去安装pyspider库 清华&#xff1a;https://py…...

uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入

先看问题&#xff1a; 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法&#xff1a;1、打开qqmap-wx-jssdk.js最后一行 然后导入&#xff1a;这里是我的路径位置&#xff0c;可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出&#xff1a; 运行效果…...

如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 控制另一台电脑有很多方法&…...

Aurora8b10b(1)IP核介绍并基于IP核进行设计

文章目录 前言一、IP核设置二、基于IP核进行设计2.1、设计框图2.2、aurora_8b10b_0模块2.3、aurora_8b10b_0_CLOCK_MODULE2.4、aurora_8b10b_0_SUPPORT_RESET_LOGIC2.5、aurora8b10b_channel模块2.6、IBUFDS_GTE2模块2.7、aurora_8b10b_0_gt_common_wrapper模块2.8、aurora8b10…...

基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的美发管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

最新测试技术

在软件测试领域,随着技术的不断进步和行业需求的变化,新的测试技术和方法不断涌现。以下是一些最新的测试技术,它们正在塑造着软件测试的未来: 人工智能和机器学习(AI/ML)在测试中的应用 人工智能和机器学习正在被集成到软件测试中,以提高测试的自动化水平和效率。AI可…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...