Halcon双目标定


* 设置图片路径
ImgPath := 'E:/2222/'
* 读取第一幅图像,并获取图像尺寸
Index := 1
read_image (ImageL, ImgPath + 'L' + Index$'02d')
read_image (ImageR, ImgPath + 'R' + Index$'02d')
* 打开合适尺寸大小的窗口
dev_close_window ()
dev_update_off ()
get_image_size (ImageL, WidthL, HeightL)
dev_open_window (0, 0, 0.4*WidthL,0.4* HeightL, 'black', WindowHandle1)
dev_set_draw ('margin')
dev_set_color ('green')
set_display_font (WindowHandle1, 14, 'mono', 'true', 'false')
get_image_size (ImageR, WidthR, HeightR)
dev_open_window (0, 0.4*WidthL + 12, 0.4*WidthL, 0.4*HeightL, 'black', WindowHandle2)
dev_set_draw ('margin')
dev_set_color ('green')
* 读取标定板模型.
CaltabFile := 'caltab_100mm.descr'
caltab_points (CaltabFile, X, Y, Z)
* 为相机内参设置初始值
StartCamParL := [0.016,0,3.75e-6,3.75e-6,WidthL / 2.0,HeightL / 2.0,WidthL,HeightL]
StartCamParR := StartCamParL
* find_caltab 和 find_marks_and_pose参数设置
SizeGauss := 3
MarkThresh := 120
MinDiamMarks := 5
StartThresh := 128
DeltaThresh := 10
MinThresh := 18
Alpha := 0.9
MinContLength := 15
MaxDiamMarks := 100
* 创建数组,用于存放图像坐标系下的标定点坐标和标定板的初始位姿
RowsL := []
ColsL := []
StartPosesL := []
RowsR := []
ColsR := []
StartPosesR := []
*循环读取标定图像
for Index := 1 to 8 by 1* 读取标定图像read_image (ImageL, ImgPath + 'L' + Index$'02d')read_image (ImageR, ImgPath + R' + Index$'02d')* 寻找标定板find_caltab (ImageL, CaltabL, CaltabFile, SizeGauss, MarkThresh, MinDiamMarks)find_caltab (ImageR, CaltabR, CaltabFile, SizeGauss, MarkThresh, MinDiamMarks)* 显示标定板区域dev_set_window (WindowHandle1)dev_display (ImageL)dev_display (CaltabL)dev_set_window (WindowHandle2)dev_display (ImageR)dev_display (CaltabR)* (左相机)提取标记点和标定板位姿,并显示位姿坐标find_marks_and_pose (ImageL, CaltabL, CaltabFile, StartCamParL, StartThresh, DeltaThresh, MinThresh, Alpha, MinContLength, MaxDiamMarks, RCoordL, CCoordL, StartPoseL)disp_caltab (WindowHandle1, CaltabFile, StartCamParL, StartPoseL, 1)*(右相机)提取标记点和标定板位姿,并显示位姿坐标find_marks_and_pose (ImageR, CaltabR, CaltabFile, StartCamParR, StartThresh, DeltaThresh, MinThresh, Alpha, MinContLength, MaxDiamMarks, RCoordR, CCoordR, StartPoseR)disp_caltab (WindowHandle2, CaltabFile, StartCamParR, StartPoseR, 1)* 计算标记点在图像坐标系下的位姿,并估算所有图像对间的相对位姿RowsL := [RowsL,RCoordL]ColsL := [ColsL,CCoordL]StartPosesL := [StartPosesL,StartPoseL]RowsR := [RowsR,RCoordR]ColsR := [ColsR,CCoordR]StartPosesR := [StartPosesR,StartPoseR]
endfor
*
* 执行标定
*
binocular_calibration (X, Y, Z, RowsL, ColsL, RowsR, ColsR, StartCamParL, StartCamParR, StartPosesL, StartPosesR, 'all', CamParamL, CamParamR, NFinalPoseL, NFinalPoseR, cLPcR, Errors)
* 可以将标定结果存入文件中:
* write_cam_par (CamParamL, 'cam_left-125.dat')
* write_cam_par (CamParamR, 'cam_right-125.dat')
* write_pose (cLPcR, 'pos_right2left.dat')
* 生成校正的映射图
gen_binocular_rectification_map (MapL, MapR, CamParamL, CamParamR, cLPcR, 1, 'geometric', 'bilinear', RectCamParL, RectCamParR, CamPoseRectL, CamPoseRectR, RectLPosRectR)
* 读取已标定系统的一个图像对
read_image (ImageL, ImgPath + 'L1')
read_image (ImageR, ImgPath + 'R1')
* 校正图像对并显示
map_image (ImageL, MapL, ImageRectifiedL)
map_image (ImageR, MapR, ImageRectifiedR)
* 检查校正图像的对极约束并显示结果(包含一些对应的极线)
*check_epipolar_constraint (ImageRectifiedL, ImageRectifiedR, RectCamParL, RectCamParR, WindowHandle1, WindowHandle2, CaltabFile, EpipolarError)

获取的标定结果如下

【Halcon】Halcon双目标定相关推荐

  1. HALCON双目标定

    下面是HALCON示例中的双目标定的一个例子 * Application program to demonstrate the calibration of * a binocular stereo ...

  2. HALCON单目标定

    标定之前需要提前准备好的是标定板(如果用笔记本电脑提前尝试但是没有标定板,下面有步骤会生成ps文件,可以自己打印出来试一试) HALCON有两种标定板 一种是老版的如下图 还有一种是新版的如下 我们要 ...

  3. Halcon单相机标定—标定板标定和自标定 线扫相机标定

    一.标定板标定 13.0 ************************************************************************************* * ...

  4. opencv 图像上画出目标运动的轨迹_基于opencv的单目和双目标定平台手眼标定

      背景介绍 基于机器视觉引导的智能机器人,在现代社会各个领域已经得到了广泛的应用,尤其是大型工厂的自动化生产线上,视觉机器人可以和基于示教器按照预定轨迹进行作业的机器人互为补充,来共同提高生产的自动 ...

  5. OpenCV | 双目相机标定之OpenCV获取左右相机图像+MATLAB单目标定+双目标定

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 原本网上可以搜到很多关于双目相机标 ...

  6. opencv读取MATLAB双目标定的结果进行双目校正

    概述: opencv内部也有双目标定的函数,但是结果有时候会飘,所以想先用MATLAB标定工具箱试试看.使用MATLAB先队两个相机进行单目标定,然后进行双目标定,将结果保存在xml文件中.xml文件 ...

  7. 双目标定,匹配的笔记

    清华大学黄耀的Stereo-Matching-Introduction ppt Efficient Large-scale Stereo Matching opencv 函数 Stereo Calib ...

  8. HALCON: HALCON 20.11.0.0 Progress主要新特性

    HALCON: HALCON 20.11.0.0 Progress主要新特性 改进了基于形状的匹配 在HALCON 20.11中,对基于形状匹配的核心技术进行了改进,尤其是针对低对比度和高噪声的场景. ...

  9. opencv双目标定常见问题总结

    最近搞个双目标定,奶奶个腿儿的~卡了好几天!!!几个比较常见的问题进行总结 1.一般标定的时候有两种,一是Matlab工具箱,二是vs+opencv库,就准确度来说,由于matlab已经足够的智能化, ...

最新文章

  1. 在SecureCRT下使用sz下载和rz上传文件
  2. python写一个通讯录V2.0
  3. 欧姆龙plc解密实例_3000多套PLC实例程序大合集自动控制系统程序电气系统程序...
  4. this指针的用法详解
  5. linux查看证书位数,查看Linux系统是32位还是64位(getconf WORD_BIT误区)
  6. 堆内存破坏检测实战--附完整调试过程
  7. python 多线程和协程结合_如何让 python 处理速度翻倍?内含代码
  8. OpenVDB:梦工厂的有效存储和处理离散在三维网格上的稀疏体积数据C++库
  9. jsencrypt代码分析——openssl的rsa加密解密在js的实现
  10. 一个到顶部自动加载更多的ListView
  11. 自适应漫画手机APP应用下载页源码
  12. vb中的print方法
  13. MLIR再深入 —— CodeGen 总结
  14. 关闭Win10锁屏的防暴力破解功能
  15. Short Pairing-based Non-interactive Zero-Knowledge Arguments
  16. 数据库树形结构存储方法的选择
  17. 何恺明的ResNet论文,被引量刚刚突破10万大关
  18. Parker机电产品(运动控制/伺服电机/直线电机)在FPD行业应用
  19. Hexo博客中插入图片,在网页中无法显示:采用图床外链的方法
  20. 矩阵链乘法 自顶向下 自底向上 Python 实现 算法导论

热门文章

  1. Android项目——电话拨号器
  2. 腾讯云从业者认证的作用是什么?考试包含哪些内容?
  3. 基于FPGA的多路抢答器设计程序代码与测试代码
  4. 解决刷新后回到顶部的问题
  5. web页面开发,一个前端妹子的面试笔记,知乎上已获万赞
  6. 系统架构设计师 报考指南,考试时间
  7. 1、软件项目规划过程——所有表集合
  8. Redis和RedisClient 官网下载方式
  9. redis在windows下的安装(包含官网下载安装包)
  10. [技巧] 关于photoshop中参考线/标尺的应用11条技巧 [