激光三角测量与光片

激光三角测量可用于重建3D物体的表面,方法是通过一组高度轮廓去还原物体表面的轮廓。

主要参照的例子是 激光三角例程中的 calibrate_sheet_of_light_calplate.hedv

从新复现一边整个校准过程

因为是一边复现一边写流程,像很多显示,辅助类的算子就补写了,原版可以在例程里面看到

1.光片原理

光片技术的基本思想是将一条细的发光直线(例如,由激光线投影仪生成)投影到要重建的物体的表面上,

然后用相机对投影线进行成像。

实物图象

理论上的解释 激光线的投影构建了一个称为光平面或光片的平面。相机的光轴和光平面形成一个角度 α,称为三角测量角度。激光线和相机视图之间的交点取决于物体的高度。因此,如果激光线投射到的物体的高度不同,则该线不会成像为直线,而是表示物体的轮廓。

人话讲是,一条激光线照在物体上,因物体高度的比变化,那个直线就不直了

2.首先校准相机

大约需要拍摄15张左右的照片,具体数量直接决定

拍摄照片要求,覆盖各个位置,各个角度

这边的各个角度包括你 在标定版后面垫东西,使得标定版倾斜一个方向,

最好先用标定助手过一遍,CSDN上有详细的教程后续补上连接

复现过程

在创建校准模型前先获取一些必要的内容有以下几点内容

  1. 所使用的相机的基本属性(这些属性可以通过你所购买的相机厂商官方查询,一般海康和迈德威视都好查)

    *相机的一些基础参数 (焦距, 0.0, 0.0, 0.0, 0.0, 0.0, 像元宽, 像元高, 376.0, 120.0, 像素宽, 像素高, StartParameters)
    gen_cam_par_area_scan_polynomial (0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 3.45e-06, 3.45e-06,720, 540, 1440, 1080,StartParameters)

  2. 标定版的描述文件地址(这个可以通过一个算子生成,然后用ps打开后打印)

  3. 标定版的厚度

  4. 标定图像的数量

gen_cam_par_area_scan_polynomial (0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 3.45e-06, 3.45e-06,720, 540, 1440, 1080,StartParameters)
CalTabDescription := 'C:/Users/Administrator/Pictures/HC1004/1.descr'
CalTabThickness := 0.001
NumCalibImages :=16

创建相机校准模型,并设置参数

  1. 创建模型 算子详细内容见 附-1
  2. 在校准数据模型中设置相机的类型和初始参数

set_calib_data_cam_param(校准模型,相机的索引,相机类型,相机的基本参数)
3. 设置校准的模型用到的标定板的描述文件

set_calib_data_calib_object( 校准模型,叫在哪对象索引,描述文件地址)

create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartParameters)
set_calib_data_calib_object (CalibDataID, 0, CalTabDescription)

循环读取图像并开始校准流程

  1. 读图

  2. 找到 HALCON 校准板,并在校准数据模型中设置提取的点和轮廓。

    find_calib_object(输入图像,校准模型,观测相机的索引,校准对象的索引,观测到的校准模型的索引,【】,【】)

  3. 执行校准

    calibrate_cameras()

for Index := 1 to NumCalibImages by 1read_image (Image, 'C:/Users/Administrator/Pictures/HK_HC100/MV/' + Index$'.1')find_calib_object (Image, CalibDataID, 0, 0, Index, [], [])
endfor
calibrate_cameras (CalibDataID, Errors)

执行相机校准部分 代码


* -------
* Part 1: 执行相机校准部分
* -------gen_cam_par_area_scan_polynomial (0.008, 0.0, 0.0, 0.0, 0.0, 0.0, 3.45e-06, 3.45e-06,720, 540, 1440, 1080,StartParameters)
CalTabDescription := 'C:/Users/Administrator/Pictures/HC1004/1.descr'
CalTabThickness := 0.001
NumCalibImages := 16create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartParameters)
set_calib_data_calib_object (CalibDataID, 0, CalTabDescription)for Index := 1 to NumCalibImages by 1read_image (Image, 'C:/Users/Administrator/Pictures/HK_HC100/MV/' + Index$'.1')find_calib_object (Image, CalibDataID, 0, 0, Index, [], [])
endfor
calibrate_cameras (CalibDataID, Errors)

3.光平面校准

复现过程

附-1 :主要的算子

create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)

创建一个通用校准模型

  • CalibSetup (in)指定校准的设置类型,有五种,本次使用calibration_object”用于根据从校准对象的观察中提取的度量信息,校准一个或多个相机的内部相机参数和相机姿态。
  • NumCameras(in) 指定在设置中同时校准的相机数量
  • NumCalibObjects (in)指定照相机观察到的校准对象的数量。
  • CalibDataID (out) 返回新校准数据模型的句柄

HALCON 3D 激光三角校准-未完持续相关推荐

  1. Halcon例程详解(激光三角系统标定)—— calibrate_sheet_of_light_calplate.hdev

    前言 1 激光三角测距 激光三角测距法原理很简单,是通过一束激光以一定的入射角度照射被测目标,激光在目标表面会产生漫反射,在另一角度利用透镜对反射激光汇聚成像,光斑成像在CCD(Charge-coup ...

  2. 3D成像方法汇总(原理解析):双目视觉、激光三角、结构光、ToF、光场、全息...

    作者丨路人甲ing..@CSDN 来源丨https://blog.csdn.net/tyfwin/article/details/89110067 编辑丨3D视觉工坊 3D成像方法汇总介绍: 这里要介 ...

  3. 3D成像方法 汇总(原理解析)— 双目视觉、激光三角、结构光、ToF、光场、全息...

    3D成像方法汇总介绍: 这里要介绍的是真正的3D成像,得到物体三维的图形,是立体的图像.而不是利用人眼视觉差异的特点,错误感知到的假三维信息.  原理上分类:主要常用有: 1.双目立体视觉法(Ster ...

  4. 3D成像汇总(原理解析)--- 双目视觉、激光三角、结构光、ToF、光场、全息

    本文转载,方便查阅.原文链接:https://blog.csdn.net/tyfwin/article/details/89110067 目录 简介 1.双目立体视觉法: 2.激光三角法 3.结构光3 ...

  5. 3D成像方法 汇总(原理解析)--- 双目视觉、激光三角、结构光、ToF、光场、全息...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 3D成像方法汇总介绍: 这里要介绍的是真正的3D成像,得到物体三维 ...

  6. 3D成像方法 汇总(原理解析)--- 双目视觉、激光三角、结构光、ToF、光场、全息

    3D成像方法汇总介绍: 这里要介绍的是真正的3D成像,得到物体三维的图形,是立体的图像. 而不是利用人眼视觉差异的特点,错误感知到的假三维信息. 原理上分类:主要常用有: 1.双目立体视觉法(Ster ...

  7. Halcon 3D 切片法检测物料

    一.简介 在上一篇中,学习了鞋底切片法来求轮廓,那个思路是比较简单的,其次还提到了法向量重建的方法,目前由于没有用法向量重建来做那个项目,所以还是有很大的疑问,后续会继续学习那个方法然后重新在做一次, ...

  8. SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

    本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中. 由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件.控制等各方面并 ...

  9. 计算机病毒洛,蓝狐动漫《百变机兽》中未完的战争,蓝毒兽原来是电脑病毒?...

    原标题:蓝狐动漫<百变机兽>中未完的战争,蓝毒兽原来是电脑病毒? 最近,好久没有更新了,因为最近找到一部非常好看的童年动漫<百变机兽>,然后就一直追剧.今天和大家一起聊聊< ...

  10. 苹果IOS企业开发者账号怎么申请——苹果账号申请记录(未完待续)

    乐易考教育新开发了一款求职APP--<职场星座>,安卓版本已经开发上线,目前正在持续更新中,包括页面图片.按钮.表格内容等.iOS版本同时也在开发当中.因此,我需要申请一个苹果iOS企业开 ...

最新文章

  1. centos下apache源码编译安装
  2. Gstreamer中一些gst-launch常用命令
  3. C++ 40行超级加速命令
  4. .net core入门之web应用
  5. 我发起了一个 ILBC 的 子项目 EScript
  6. 开源软件使用_消费开源软件:如何使用和购买
  7. PHP面向对象的魔术方法
  8. EMC 电磁兼容测试项目
  9. A - 饭卡(动态规划 01背包)
  10. 中国慢病管理行业市场形势调查分析及价值研究报告2021-2027年版
  11. oracle 定时任务 每天执行,Oracle定时任务(定时执行某个SQL语句)
  12. 【复旦微】国产MCU学习(持续更新)
  13. 木瓜移动:到底什么样的跨境SaaS服务商才是卖家更好的选择?
  14. Data Structure - Quadratic Probing Hash Table (Java)
  15. 最好的5个电脑上的epub阅读器
  16. 《孙子兵法》帮你玩转团队管理
  17. Word中用Endnote插入的引用如何快速定位到参考文献
  18. 在亚马逊能接到服装订单吗?亚马逊美国站突然没订单怎么办?
  19. mysql中按照每个月分组统计数据并且查询去年的所有数据
  20. Web页面动态验证码

热门文章

  1. 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题
  2. ThreadPoolExecutor线程池 —————— 开开开山怪
  3. Myshare.cc 图床对接ShareX自定义图片上传
  4. leach c matlab,其实是MATLAB的LEACH协议
  5. 无密码解锁iPhone
  6. 北京地铁,4号线换乘13号线,用时最短换乘线路
  7. NBIOT 关键术语
  8. 回归评价指标(MSE、RMSE、MAE、R-Squared、拟合优度)
  9. android Settings之辅助功能
  10. 程序控制结构-飞机超速报警系统