当前位置: 首页 > 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都可以显示正确的类…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...