Halcon 相机标定

news2024/11/22 22:19:07

文章目录

  • 算子
  • 单相机标定
  • 单相机标定畸变的矫正

算子

gen_caltab 生成标定文件

gen_caltab(::XNum,YNum,MarkDist,DiameterRatio,CalTabDescrFile,CalTabPSFile :) 算子来制作一个标定板
          
           XNum                 每行黑色标志圆点的数量。
           YNum                 每列黑色标志圆点的数量。
           MarkDist             两个就近黑色圆点中心之间的距离。单位是meter
           DiameterRatio        黑色圆点直径与两圆点中心距离的比值。
           CalTabDescrFile      标定板描述文件的文件路径(.descr),是保存文件的路径
           CalTabPSFile         标定板图像文件的文件路径(.ps)

image_points_to_world_plane 图像坐标转换为世界坐标

 image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y)
 
    CameraParam (input_control): 内部相机参数。
    WorldPose (input_control): 相机坐标系中世界坐标系的3D姿态。
    Rows (input_control): 需要进行转换的点的行坐标。
    Cols (input_control): 需要进行转换的点的列坐标。
    Scale (input_control): 比例尺或尺寸,有多种可选单位。
    X (output_control): 世界坐标系中点的X坐标。
    Y (output_control): 世界坐标系中点的Y坐标。

change_radial_distortion_cam_par 矫正相机参数

change_radial_distortion_cam_par( : : Mode, CamParamIn, DistortionCoeffs : CamParamOut)
    Mode (input_control): 模式选择,用于指定相机操作模式。默认adaptive
    CamParamIn (input_control): 原始的内部相机参数。
    DistortionCoeffs (input_control): 期望的径向畸变参数,可能包含1个或5个元素。默认:0
    CamParamOut (output_control): 修改后的内部相机参数。

gen_radial_distortion_map 形成矫正映射

gen_radial_distortion_map( : Map : CamParamIn, CamParamOut, MapType : )

    Map (output_object): 包含映射数据的图像对象。
    CamParamIn (input_control): 旧的相机参数。
    CamParamOut (input_control): 新的相机参数。
    MapType (input_control): 映射类型,指定映射过程中使用的插值方式。 默认为:bilinear

map_image 矫正映射到图片

map_image(Image, Map : ImageMapped : : )

    Image (input_object): 待映射的图像对象。
    Map (input_object): 包含映射数据的图像对象。
    ImageMapped (output_object): 映射后的图像对象。

单相机标定

生成标定板
在这里插入图片描述
生成的标定板文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述> 选择自动检测接口
在这里插入图片描述
点击实时图像就可以看到标定板参数
在这里插入图片描述> 点击采集(采集 16-20 张图片即可,检测出品质问题也是可以的,只有失败才不能用)
在这里插入图片描述各个角度都需要采集
在这里插入图片描述 设置参考位置可以设置为第一张图片,之后点击标定
在这里插入图片描述 品质问题百分数越低越好
在这里插入图片描述
采集完成后点击标定,标定好之后可以查看结果
相机参数为内参(内参直接决定畸变情况和像素和物理坐标之间的关系),摄像机位姿为外参,点击保存
在这里插入图片描述> 生成模式选择为:标定函数 点击插入代码
在这里插入图片描述> 标定文件选择为内外参数,并且实时采集图片
在这里插入图片描述> 进行测量即可
在这里插入图片描述

单相机标定畸变的矫正

相机畸变↓
在这里插入图片描述> 标定数据完成后,生成模式选择标定数据点击插入代码就可以获取相机的内外参数
在这里插入图片描述点击采集助手,实时采集,生成代码
在这里插入图片描述写入矫正函数
在这里插入图片描述

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

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

相关文章

RAG近期发展综述

RAG简介 RAG全称为检索增强生成技术,其主要可以分为三部分,索引(构建)、检索以及生成,各个部分又可以进一步细分。 索引 索引阶段主要是构建知识库的过程,这里的知识库是泛指,包括了向量数据…

JAVA之HashMap详解

HashMap 1. 设计原理 HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的 key、value 都可以为 null,此外,HashMap 中…

sql语句学习(一)--查询

【有道云笔记】基本sql语句2—查询基础 数据库表结构 DROP TABLE IF EXISTS class; CREATE TABLE class (id int(11) NOT NULL AUTO_INCREMENT,class_num varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 班级号,class_name varchar(255) CHARACTE…

飞天使-k8s知识点21-kubernetes实操6-daemonset

文章目录 daemonsetservice endpoint pod 之间的关系service基于Service访问外部服务 daemonset DaemonSet 是 Kubernetes 中的一种资源对象,它确保在集群中的每个节点上都运行一个 Pod 的副本。这对于运行集群级别的守护进程(例如日志收集器、监控代理…

Leetcode - 周赛384

目录 一,3033. 修改矩阵 二,3035. 回文字符串的最大数量 三,3036. 匹配模式数组的子数组数目 II 一,3033. 修改矩阵 这道题直接暴力求解,先算出每一列的最大值,再将所有为-1的区域替换成该列的最大值&am…

mysql 2-17

UNION关键字和UNION ALL 自然连接 USING使用 函数 单行函数 基本函数 三角函数 指数和对数 进制间的转换 字符串函数 时间和日期函数 计算日期和时间的函数 日期的格式化和解析 流程控制函数

输入输出自定义映射矩阵(数据结构树)

输出自定义FC其它算法实现,可以参考下面文章: https://rxxw-control.blog.csdn.net/article/details/125994252https://rxxw-control.blog.csdn.net/article/details/125994252下面我们看下我们的控制要求。在学习本篇博客之前大家可以熟悉下数据结构图的概念和存储知识,链…

【复合多尺度熵与特征提取】一文看懂“复合多尺度熵”——复合多尺度样本熵、模糊熵、排列熵、包络熵、功率谱熵、能量熵、奇异谱熵及其MATLAB实现

在上一篇文章中,我们讲了多尺度熵的原理及MATLAB实现。 本篇要讲的是多尺度熵的一个改进特征提取方法——复合多尺度熵(Composite Multiscale Entropy, CMSE)。复合多尺度熵方法不仅继承了多尺度熵在揭示时间序列多尺度复杂性方面的优势&…

【Python--Web应用框架大比较】

🚀 作者 :“码上有前” 🚀 文章简介 :Python 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 Django Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不…

定时器外部时钟

一、相较于内部时钟中断改动: 1.Timer.c RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin GPIO_Pin_…

ACM题解Day4 | Boring Non-Palindrome ,Mental Rotation ,so Easy

学习目标: 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门算法 👍👍👍👍👍👍👍👍👍👍👍👍 ☆*: .。. o(≧▽…

GuitarPro8激活许可证24位下载

Guitar Pro是一款专业的吉他制谱软件,现在已更新至Guitar Pro8,新增了支持添加音频轨道、支持嵌套连音符、直观的效果器视图、让指法一目了然的音阶示意图等实用新功能。下面我们来看Guitar Pro8 如何安装激活。 Guitar Pro 8.1官方中文解锁版如何安装 …

可视化和跟踪机器学习实验的工具——Wandb

简介:用于可视化和跟踪机器学习实验的工具。Weights & Biases 是一个机器学习平台,供开发人员更快地构建更好的模型。使用 W&B 的轻量级、可互操作的工具快速跟踪实验、对数据集进行版本和迭代、评估模型性能、重现模型、可视化结果和发现回归&a…

【Java多线程进阶】JUC常见类以及CAS机制

1. Callable的用法 之前已经接触过了Runnable接口,即我们可以使用实现Runnable接口的方式创建一个线程,而Callable也是一个interface,我们也可以用Callable来创建一个线程。 Callable是一个带有泛型的interface实现Callable接口必须重写cal…

【sgCreateTableData】自定义小工具:敏捷开发→自动化生成表格列数据数组[基于el-table]

源码 <template><!-- 前往https://blog.csdn.net/qq_37860634/article/details/136141769 查看使用说明 --><div :class"$options.name"><div class"sg-head">表格数据生成工具</div><div class"sg-container&quo…

Nginx (window)2024版 笔记 下载 安装 配置

前言 Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理&#xff08;Reverse Proxy&#xff09;服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。 反向代理方式是指以代理服务器来接受 internet 上的连接请求&#xff0c;然后将请求转发给内部网络上的服…

java8-使用流-2

筛选各异的元素 流还支持一个叫作aistinct的方法&#xff0c;它会返回一个元素各异(根据流所生成元素的hashcode和eguals方法实现)的流。例如&#xff0c;以下代码会筛选出列表中所有的偶数&#xff0c;并确保没有重复。图5-2直观地显示了这个过程。 List<Integer>number…

「算法」滑动窗口

前言 算法需要多刷题积累经验&#xff0c;所以我行文重心在于分析解题思路&#xff0c;理论知识部分会相对简略一些 正文 滑动窗口属于双指针&#xff0c;这两个指针是同向前行&#xff0c;它们所夹的区间就称为“窗口” 啥时候用滑动窗口&#xff1f; 题目涉及到“子序列…

Unity所有关于旋转的方法详解

前言&#xff1a;欧拉角和四元数的简单描述 我们在Inspector面板上看到的rotation其实是欧拉角&#xff0c; 我们将Inspector面板设置成Debug模式&#xff0c;此时看到的local Rotation才是四元数。 Unity中的欧拉旋转是按照Z-X-Y顺规执行的旋转&#xff0c;一组欧拉旋转过程中…

C++11---lambda表达式

lambda表达式 lambda表达式概念lambda表达式语法lambda表达式各部分说明 lambda表达式交换两个数lambda表达式底层原理lambda表达式的底层原理 lambda表达式之间不能相互赋值 lambda表达式概念 lambda表达式是一个匿名函数&#xff0c;恰当使用lambda表达式可以让代码变得简洁…