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

2025/6/4知识点总结—HALCON像素坐标转物理坐标

根据三个或者三个以上的点生成仿射矩形

根据多个点生成仿射矩形有点类似于VisionPro里面的九点标定。先说算子:

*最少是三个特征点,把(Row,Col)->(R1,C1)计算一个仿射矩阵的作用
vector_to_hom_mat2d (Row,Col ,R1, C1, HomMat2D)*假设再有图像坐标 (500,200), 转成物理坐标, 
affine_trans_point_2d (HomMat2D, 500, 200, Qx, Qy)

通过输入的点对应关系,计算 2D仿射变换矩阵(3×3齐次矩阵),默认使用最小二乘法拟合最优变换。

vector_to_hom_mat2d(
    Px,     // 原始点x坐标数组 
    Py,     // 原始点y坐标数组
    Qx,     // 目标点x坐标数组
    Qy,     // 目标点y坐标数组
    HomMat2D // 输出的变换矩阵
)


用于将一个或多个2D点通过给定的3×3齐次变换矩阵进行仿射变换。

affine_trans_point_2d(
    HomMat2D, // 输入的变换矩阵
    Px,     // 原始点x坐标数组 
    Py,     // 原始点y坐标数组
    Qx,     // 目标点x坐标数组
    Qy,     // 目标点y坐标数组
)

通俗来讲可以理解为:第一个算子是用来生成图像坐标转物理坐标的公式。第二个算子是用来使用公式的(传入图像坐标,转成物理坐标)


 物理坐标转为图像坐标

反过来,想要将物理坐标转为图像坐标就需要一个逆矩阵

*物理坐标 Qx, Qy, 转成图像坐标
*先对HomMat2D 生成一个逆矩阵
hom_mat2d_invert (HomMat2D, HomMat2DInvert)affine_trans_point_2d (HomMat2DInvert, Qx, Qy, Qx1, Qy1)

如果原矩阵能把A坐标系的点转到B坐标系,逆矩阵就能把B坐标系的点转回A坐标系

hom_mat2d_invert(
    HomMat2D, // 原始3×3仿射变换矩阵
    HomMat2DInvert    // 计算得到的逆矩阵
)

需要注意的是,数学上计算矩阵的逆,要求原矩阵必须是可逆的,即行列式不为零

http://www.xdnf.cn/news/12577.html

相关文章:

  • chatlog:一个基于MCP实现聊天记录总结和查询的开源工具
  • WebFuture:Syncthing配置以www-data用户运行
  • LINUX 66 FTP 2 ;FTP被动模式;FTP客户服务系统
  • Python训练营---Day46
  • R²ec: 构建具有推理能力的大型推荐模型,显著提示推荐系统性能!!
  • python中的逻辑运算
  • 什么是强化学习:设置奖励函数最为loss, 监督学习:标签准确率作为loss
  • 三维GIS开发cesium智慧地铁教程(4)城市白模加载与样式控制
  • 【正念365】助你好“眠”
  • python实战:如何对word文档的格式进行定制化排版
  • C++ const 修饰符深入浅出详解
  • leetcode1609. 奇偶树-meidum
  • untiy 模拟人物在街道走路和跑步
  • Shell编程核心符号与格式化操作详解
  • [electron]预脚本不显示内联script
  • 使用docker安装vLLM、并安装modelscope本地模型
  • 三格电子——EtherCAT分支器的应用场景
  • 2025年硬盘坏道修复工具指南:让您的硬盘焕发新生
  • 【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载
  • 【k8s】k8s集群搭建
  • 洞悉 MySQL 查询性能:EXPLAIN 命令 type 字段详解
  • 基于本地LLM与MCP架构构建AI智能体全指南
  • Nest框架: 日志功能之收集,筛选,存储,维护
  • c语言 头文件封装跨平台线程
  • SATA3.0接口PCB布局走线注意事项
  • 【Redis】Cluster集群
  • C++11 右值引用:从入门到精通
  • Vue3 卡片绑定滚动条 随着滚动条展开效果 GSAP动画库 ScrollTrigger滚动条插件
  • 2025/6/4—halcon算子及知识点总结
  • windows11右键取消二次加载