matlab创建圆点标定板,(halcon实例)一种蜂窝圆点标定板校准CCD并测量的例子
这个不是hlacon的标准标定板。
勇哥想知道这个+-0.009mm是怎么整出来了。这个例子值得研究一下。
ImgPath := '3d_machine_vision/calib/'
dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
dev_update_off ()
dev_set_draw ('margin')
dev_set_line_width (3)
set_display_font (WindowHandle, 22, 'mono', 'true', 'false')
*
* Calibrate the camera.
*
gen_cam_par_area_scan_division (0.012, 0, 0.00000375, 0.00000375, 640, 480, 1280, 960, StartCamPar)
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'calplate_80mm.cpd')
NumImages := 7
for I := 1 to NumImages by 1
read_image (Image, ImgPath + 'calib_image_' + I$'02d')
dev_display (Image)
find_calib_object (Image, CalibDataID, 0, 0, I, [], [])
get_calib_data_observ_contours (Caltab, CalibDataID, 'caltab', 0, 0, I)
get_calib_data_observ_points (CalibDataID, 0, 0, I, Row, Column, Index, StartPose)
dev_set_color ('green')
dev_display (Caltab)
dev_set_color ('red')
disp_circle (WindowHandle, Row, Column, gen_tuple_const(|Row|,1.5))
endfor
calibrate_cameras (CalibDataID, Errors)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* The reference image, i.e., the image in which the calibration
* plate is located on the ruler is the first image
get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', Pose)
* To take the thickness of the calibration plate into account, the z-value
* of the origin given by the camera pose has to be translated by the
* thickness of the calibration plate.
* Deactivate the following line if you do not want to add the correction.
set_origin_pose (Pose, 0, 0, 0.002, Pose)
* measure the distance between the pitch lines
read_image (Image, ImgPath + 'ruler')
dev_display (Image)
gen_measure_rectangle2 (690, 680, rad(-0.25), 480, 8, 1280, 960, 'bilinear', MeasureHandle)
measure_pairs (Image, MeasureHandle, 0.5, 5, 'all', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
Row := (RowEdgeFirst + RowEdgeSecond) / 2.0
Col := (ColumnEdgeFirst + ColumnEdgeSecond) / 2.0
disp_cross (WindowHandle, Row, Col, 20, rad(45))
image_points_to_world_plane (CamParam, Pose, Row, Col, 'mm', X1, Y1)
distance_pp (X1[0:11], Y1[0:11], X1[1:12], Y1[1:12], Distance)
tuple_mean (Distance, MeanDistance)
tuple_deviation (Distance, DeviationDistance)
disp_message (WindowHandle, 'Mean distance: ' + MeanDistance$'.3f' + 'mm +/- ' + DeviationDistance$'.3f' + 'mm', 'window', 30, 60, 'yellow', 'false')
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!
#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。
收藏 | 0点赞 | 0打赏作者
matlab创建圆点标定板,(halcon实例)一种蜂窝圆点标定板校准CCD并测量的例子相关推荐
- 工业机器人工具中心点标定的意义_一种利用平面标定板的机器人工具中心点标定方法_2015108676182_说明书_专利查询_专利网_钻瓜专利网...
技术领域 本发明涉及机器人工具中心点(Toolcenterpoint,TCP)标定方法,尤其涉及一种利用平面标定板的机器人工具中心点标定方法. 背景技术 机器人工具中心点(Toolcenterpoin ...
- php实例之简单的留言板,PHP实例一之简单的留言板
注:参考兄弟连教学视频写的一个简单的留言板模块,获得更多内容请参考我的博文. 示例:文本式留言板 需要的知识点: 1.文件操作: file_put_contents();文件的写入函数 file_ge ...
- python 创建一个空向量,python 创建一个空向量_python 创建一维的0向量实例
python 创建一维的0向量实例 第一种方法: A=[0]*8 第二种方法: import numpy as np A=np.zeros(8) 以上这篇python 创建一维的0向量实例就是小编分享 ...
- python 创建一个空向量_python 创建一维的0向量实例
python 创建一维的0向量实例 第一种方法: A=[0]*8 第二种方法: import numpy as np A=np.zeros(8) 以上这篇python 创建一维的0向量实例就是小编分享 ...
- matlab创建圆点标定板,Halcon学习(十八)如何制作标定板
下面我具体介绍一下,如何制作halcon的标准标定板 方法一:用halcon软件自动生成的.ps文件来制作标定板. 这个也是最简单有效的方法. XNum 每行黑色标志圆点的数量. YNum 每列黑色标 ...
- matlab创建圆点标定板,Halcon标定板,网格标定板,机器视觉圆点标定板
本产品介绍: 产品名称 产品型号 外形尺寸 (mm) 图形精度 (μm) 机器视觉 标定板 HBM03-2010-3Y 122*67*3 1 应用领域 宏诚光学玻璃系列标定板和陶瓷系列标定板是专为高校 ...
- python矩阵对角化_numpy创建单位矩阵和对角矩阵的实例
在学习linear regression时经常处理的数据一般多是矩阵或者n维向量的数据形式,所以必须对矩阵有一定的认识基础. numpy中创建单位矩阵借助identity()函数.更为准确的说,此函数 ...
- python 对角阵_numpy创建单位矩阵和对角矩阵的实例
在学习linear regression时经常处理的数据一般多是矩阵或者n维向量的数据形式,所以必须对矩阵有一定的认识基础. numpy中创建单位矩阵借助identity()函数.更为准确的说,此函数 ...
- 圆形标定板_自己改的,圆形标定板,opencv标定代码
[实例简介] 自己通过opencv棋盘格标定改的代码,用于圆形标定板的相机标定. [实例截图] [核心代码] CircleCalib └── CircleCalib ├── DotFitting │ ...
最新文章
- phpcms V9利用num++实现多样形式列表标签调用
- Python文档字符串生成器:基于CodeBERT,支持Google、Numpy等多种输出格式
- Androidstudio SVN安装与使用
- MySQL对查询结果排序
- error C2018: unknown character '0xa1'解决方法
- springcloud五大组件?注解_spring cloud实现简单的微服务架构
- duilib开发(六):基本控件介绍
- 中文句法分析_句法分析StanfordParser+依存句法分析pyhanlp
- matlab 小波变换程序,matlab 小波变换
- 显微镜下的大明内容_显微镜下的大明
- html旋转360度特效,CSS3图片旋转特效(360/60/-360度)
- 【Python】模块(Module)、包(Package)以及相对导入(relative import)和绝对导入(absolute import)
- pr使用中C盘空间变小
- Linux驱动——ALSA
- android ocr 身份证识别
- 三八节礼物推荐,不能错过的四款数码好物推荐
- 网优5g前景_5G网络优化工程师的前景和待遇
- servlet+mysql实现的学生评教系统(角色:学生、教师、管理员 功能:评教、修改密码、评教规则管理、评教结果查看、学生管理、教师管理、班级管理、学生信息、评教结果可视化展示等)
- 【sdx62】XBL设置共享内存变量,然后内核层获取变量实现
- MusicPlayerByService