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

halcon双目标定双相机标定

halcon双目标定
在这里插入图片描述

*取消更新
dev_update_off ()
*获取窗体句柄
dev_get_window (WindowHandle)
*设置窗体字体样式
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*设置线条粗细
dev_set_line_width (3)
*创建空对象
gen_empty_obj (ImageL)
*读取指定文件内子集
list_files ('G:/imageL', ['files','follow_links','recursive'], ImageFiles)
*筛选文件类型
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1*读取图像read_image (Image, ImageFiles[Index])*对象追加concat_obj (ImageL, Image, ImageL)endfor
*创建空对象
gen_empty_obj (ImageR)
*读取指定文件内子集
list_files ('G:/imageR', ['files','follow_links','recursive'], ImageFiles)
*筛选文件类型
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1*读取图像read_image (Image, ImageFiles[Index])*对象追加concat_obj (ImageR, Image, ImageR)
endfor
*暂停程序
stop ()
Cameraparm:=['area_scan_division',0.008,0,3.2e-006,3.2e-006,1024,768,2048,1536]
*创建标定模型
create_calib_data ('calibration_object', 2, 1, CalibDataID)
*设置相机的初始内参
set_calib_data_cam_param (CalibDataID, 'all', [], Cameraparm)
*设置标定板的描述文件
set_calib_data_calib_object (CalibDataID, 0, 'G:/other/双相机标定描述文件.descr')
*对象计算
count_obj (ImageR, Number)
*打开一个窗体
dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
*打开一个窗体
dev_open_window (50, 50, 512, 512, 'black', WindowHandle2)
IndexL:=0
IndexR:=0
for I := 1 to Number by 1*选择指定条件的对象select_obj (ImageL, ObjectSelectedL, I)*选择指定条件的对象select_obj (ImageR, ObjectSelectedR, I)*查找标定板find_calib_object (ObjectSelectedL, CalibDataID, 0, 0, I, [], [])*查找标定板find_calib_object (ObjectSelectedR, CalibDataID, 1, 0, I, [], [])*获取标定板mark点轮廓get_calib_data_observ_contours (Contours, CalibDataID, 'marks', 0, 0, I)*获取标定板mark点轮廓get_calib_data_observ_contours (Contours1, CalibDataID, 'marks', 1, 0, I)get_calib_data_observ_pose (CalibDataID, 0, 0, I, ObjInCameraPoseL)get_calib_data_observ_pose (CalibDataID, 1, 0, I, ObjInCameraPoseR)*获取标定板姿态和中心行列坐标get_calib_data_observ_points (CalibDataID, 0, 0, I, Row, Column, Index2, Pose)*获取标定板姿态和中心行列坐标get_calib_data_observ_points (CalibDataID, 1, 0, I, Row1, Column1, Index3, Pose1)dev_set_window (WindowHandle1)*显示图像dev_display (ObjectSelectedL)*显示图像dev_display (Contours)*在区域中心点画十字叉gen_cross_contour_xld (Cross, Row, Column, 16, 0.785398)*显示图像dev_display (Cross)*显示3d坐标系disp_3d_coord_system (WindowHandle1, Cameraparm, ObjInCameraPoseL, 0.05)dev_set_window (WindowHandle2)*显示图像dev_display (ObjectSelectedR)*显示图像dev_display (Contours1)*在区域中心点画十字叉gen_cross_contour_xld (Cross1, Row1, Column1, 16, 0.785398)*显示图像dev_display (Cross1)*显示3d坐标系disp_3d_coord_system (WindowHandle2, Cameraparm, ObjInCameraPoseR, 0.05)*     stop ()endfor
*暂停程序
stop ()
*反向均方差RMSE
calibrate_cameras (CalibDataID, Error)
*获得camera 内参,calib_obj_pose 外参
get_calib_data (CalibDataID, 'camera', 0, 'params', CameraparmL)
*获得camera 内参,calib_obj_pose 外参
get_calib_data (CalibDataID, 'camera', 1, 'params', CameraparmR)
*获得camera 内参,calib_obj_pose 外参
get_calib_data (CalibDataID, 'camera', 1, 'pose', LHR)
*获得camera 内参,calib_obj_pose 外参
get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', LHO1)
*姿态翻转
pose_invert (LHR, RHL)
*姿态相乘
pose_compose (RHL, LHO1, RH01)
dev_set_window (WindowHandle1)
*读取图像
read_image (Image01, 'G:/imageL/image_01.png')
*显示图像
dev_display (Image01)
dev_set_window (WindowHandle2)
*读取图像
read_image (Image02, 'G:/imageR/image_01.png')
*显示图像
dev_display (Image02)
*转世界坐标
image_points_to_world_plane (CameraparmL,LHO1,819, 597, 'm', X, Y)
*转世界坐标
image_points_to_world_plane (CameraparmR, RH01, 976, 1615, 'm', X1, Y1)
*求两个坐标的直线距离
distance_pp (X, Y, X1, Y1, Distance)
*设置窗体字体样式
set_display_font (WindowHandle2, 16, 'mono', 'true', 'false')
*显示文本
disp_message (WindowHandle2, '边长:'+(Distance*1000)$'4.2f'+'mm', 'image', 0, 0, 'red', 'true')

相关文章:

halcon双目标定双相机标定

halcon双目标定 *取消更新 dev_update_off () *获取窗体句柄 dev_get_window (WindowHandle) *设置窗体字体样式 set_display_font (WindowHandle, 16, mono, true, false) *设置线条粗细 dev_set_line_width (3) *创建空对象 gen_empty_obj (ImageL) *读取指定文件内子集 li…...

Vue框架学习记录之环境安装与第一个Vue项目

Node.js的安装与配置 首先是Node.js的安装,安装十分简单,只需要去官网下载安装包后,一路next即可。 Node.js是一个开源的、跨平台的 JavaScript 运行时环境 下载地址,有两个版本,一个是推荐的,一个是最新…...

【DockerCE】Docker-CE 24.0.6正式版发布

官网下载地址(For RHEL/CentOS 7.9): https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 相对于24.0.5版本,本次24.0.6版本更新的rpm包有 5 个,使用目录对比软件对比的结果如下: 在Lin…...

【管理运筹学】第 7 章 | 图与网络分析(1,图论背景以及基本概念、术语、矩阵表示)

文章目录 引言一、图与网络的基本知识1.1 图与网络的基本概念1.1.1 图的定义1.1.2 图中相关术语1.1.3 一些特殊图类1.1.4 图的运算 1.2 图的矩阵表示1.2.1 邻接矩阵1.2.2 可达矩阵1.2.3 关联矩阵1.2.4 权矩阵 写在最后 引言 按照正常进度应该学习动态规划了,但我想…...

支持CAN FD的Kvaser PCIEcan 4xCAN v2编码: 73-30130-01414-5如何应用?

这里是引用 Kvaser PCIEcan 4xCAN v2(编码: 73-30130-01414-5)是一款小巧而先进的多通道实时CAN接口,可发送和接收CAN总线上的标准和扩展CAN消息,时间戳精度高。其与所有使用Kvaser CANlib的应用程序兼容。 主要特性 PCI Express…...

经济2023---风口

改革开放以来,中国共有12次比较好的阶级跃迁的机会: 包括80年代选部委院校、办乡镇企业、倒卖商品;90年代下海、选外语外贸、炒股;00年代从事资源品行业、选金融、炒房;10年代选计算机、搞互联网、买比特币。 从这里…...

JWFD开源工作流-矩阵引擎设计-高维向量空间分析法

JWFD开源工作流-矩阵引擎设计-高维向量空间分析法 在把已知的流程节点查找到之后,输出下标,但是我们发现,还有一些节点并未被 探测到,遍历并没有完全的完成,仍然有泄露的节点在其中,这个问题…...

WIN10访问Ubuntu的Samba

WIN10访问Ubuntu的Samba 在Ubuntu中安装好Samba后,如果无法在Win10里访问共享目录或者无法进行写操作,可以进行如下检查: 检查用户是否添加到共享和共享组 $ sudo adduser yourname sambashare 可以编辑:,查看文件/etc…...

AbstractExecutorService 抽象类

java.util.concurrent.AbstractExecutorService 是 Java 并发编程中的一个抽象类,它定义了 ExecutorService 接口的基本行为。ExecutorService 是一个接口,它提供了一种以异步方式执行任务的方法。 AbstractExecutorService 类包含以下一些重要的方法: void execute(Runnab…...

Android12 ethernet和wifi共存

1.修改网络优先走wifi packages/modules/Connectivity/service/src/com/android/server/connectivity/NetworkRanker.java -44,7 44,7 import java.util.Arrays;import java.util.Collection;import java.util.List;import java.util.function.Predicate; - import andro…...

记录使用layui弹窗实现签名、签字

一、前言 本来项目使用的是OCX方式做签字的,因为项目需要转到国产化,不在支持OCX方式,需要使用前端进行签字操作 注:有啥问题看看文档,或者换着思路来,本文仅供参考! 二、使用组件 获取jSign…...

【AIGC系列】Stable Diffusion 小白快速入门课程大纲

一、前言 本文是《Stable Diffusion 从入门到企业级应用实战》系列课程的前置学习引导部分,《Stable Diffusion新手完整学习地图课程》的课程大纲。该课程主要的培训对象是: 没有人工智能背景,想快速上手Stable Diffusion的初学者;想掌握St…...

在kali环境下安装Beef-Xss靶场搭建

目录 一、更新安装包 二、安装beef-xss 三、启动Beef-Xss工具 1、查看hook.js 2、查看后台登录地址 3、查看用户名和登录密码 4、登录页面 5、点击 Hook me:将配置的页面导入BEEF中 一、更新安装包 ┌──(root㉿kali)-[/home/kali] └─# apt-get update 二、安装be…...

【Apollo】自动驾驶技术的介绍

阿波罗是百度发布的名为“Apollo(阿波罗)”的向汽车行业及自动驾驶领域的合作伙伴提供的软件平台。 帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 百度开放此项计划旨在建立一个以合作为中…...

HTML emoji整理 表情符号

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>测试</title></head><body><div style"font-size: 50px;">&#128276</div><script>let count 0d…...

【蒸汽冷凝器型号和PI控制】具有PID控制的蒸汽冷凝器的动力学模型(MatlabSimulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

mall :hutool项目源码解析

文章目录 一、mall开源项目1.1 来源1.2 项目转移1.3 项目克隆 二、Hutool工具类库2.1 Hutool 简介 三、源码解析3.1 集成与配置3.1.1 导入依赖3.1.2 添加配置 3.2 核心工具类3.2.1 AnnotationUtil使用&#xff1a;注解工具类3.2.2 BeanUtil使用&#xff1a;JavaBean的工具类3.2…...

【网络编程】TCP传输控制协议(Transmission Control Protocol)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…...

云原生Kubernetes:kubectl管理命令

目录 一、理论 1.kubectl 管理命令 2.项目的生命周期 二、实验 1.kubectl 管理命令 2.项目的生命周期 三、总结 一、理论 1.kubectl 管理命令 &#xff08;1&#xff09;陈述式资源管理方法 kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口…...

前端面试的话术集锦第 5 篇:高频考点( 类型转换 深浅拷贝 模块化机制等)

这是记录前端面试的话术集锦第五篇博文——高频考点(类型转换 & 深浅拷贝 & 模块化机制等),我会不断更新该博文。❗❗❗ 1. typeof类型判断: typeof是否能正确判断类型? instanceof能正确判断对象的原理是什么 typeof对于原始类型来说,除了null都可以显示正确的类…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...