HALCON相机标定

相机标定简介:

首先,相机会产生畸变,即实际图像和拍摄图像不一致,可以是凸性也可以是凹性形变,相机标定的过程就是将畸变图像还原为原始图像,并将图像中的像素坐标转换为世界坐标。

形如:相机内参 CameraParameters 和相机外参 CameraPose

CameraParameters := ['area_scan_division',0.000775057,-131550,6.66883e-07,6.67e-07,796.074,594.063,1600,1200]

CameraPose := [0.000732489,0.0324252,0.533711,359.244,357.29,0.365181,0]

1.标定板生成

用gen_caltab算子来制作一个标定板,具体见深入理解halcon相机标定_halcon标定-CSDN博客
gen_caltab( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : )

2.标定板摆放

标定板数量9-16张为宜,标定板占标定图像1/3到1/4,可以偏离标定板所在平面一定角度。

3.怎么用halcon进行相机内外参标定?

连接好相机后,打开相机驱动软件看相机是否正确连接,再更改设置里的网络和internet中IP4地址和掩码为驱动软件上显示的相应内容。

打开halcon窗口的image acquisition,自动检测,连接设备,实时显示图像。

也可通过相机驱动软件进行拍摄存储,拍摄图像存放置指定文件夹。

通过上述操作得到标定描述文件后,打开halcon的celarbation窗口:查询相机所属型号的焦距、像元。

进一步,选标定==>图像文件==>加载存储的图像

标志失败原因:1)打光不好,过亮、过暗

2)对焦不清晰

3)标定板的对比度不够(>128)

去除标志失败点图像,适当移除部分品质不好的图像,选定方向较正的图像作为参考位姿,点击标定。

得到生成结果

进一步,代码生成,

可在halcon代码里看到生成的相机内外参数

示例代码如下:

复制代码
CameraParameters := ['area_scan_division',0.000733146,-131210,6.66914e-07,6.67e-07,794.794,595.823,1600,1200]
CameraPose := [0.00132212,0.0316434,0.504834,359.297,357.443,0.364191,0]

read_image (Image, 'C:/ProgramData/Galaxy/userdata/top_camera/Pic_20250415192151821.bmp')

rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 4, 100)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and',300,1000.5)
select_shape (SelectedRegions, SelectedRegions, 'column', 'and', 525.7, 960)
area_center (SelectedRegions, Area, Row, Column)

at_colum := [Column[0],Column[1]]
at_row := [ Row[0],Row[1]]

gen_contour_polygon_xld (Contour,at_row , at_colum)
image_points_to_world_plane (CameraParameters, CameraPose, at_row,at_colum, 'mm', X, Y)
x1 := X[0]
x2 := X[1]
y1 := Y[0]
y2 := Y[1]
distance_pp (x1, y1, x2, y2, Distance)
stop ()
相关推荐
badhope3 小时前
Mobile-Skills:移动端技能可视化的创新实践
开发语言·人工智能·git·智能手机·github
吴佳浩4 小时前
GPU 编号进阶:CUDA\_VISIBLE\_DEVICES、多进程与容器化陷阱
人工智能·pytorch·python
吴佳浩4 小时前
GPU 编号错乱踩坑指南:PyTorch cuda 编号与 nvidia-smi 不一致
人工智能·pytorch·nvidia
小饕5 小时前
苏格拉底式提问对抗315 AI投毒:实操指南
网络·人工智能
卧蚕土豆5 小时前
【有啥问啥】OpenClaw 安装与使用教程
人工智能·深度学习
GoCodingInMyWay5 小时前
开源好物 26/03
人工智能·开源
AI科技星5 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
zhangfeng11335 小时前
Windows 的 Git Bash 中使用 md5sum 命令非常简单 md5做文件完整性检测 WinRAR 可以计算文件的 MD5 值
人工智能·windows·git·bash
monsion5 小时前
OpenCode 学习指南
人工智能·vscode·架构
藦卡机器人5 小时前
中国工业机器人发展现状
大数据·人工智能·机器人