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 ()
相关推荐
hunteritself5 小时前
10 层 4K 实时剪辑,国产工作站进入广电制作核心
大数据·前端·人工智能·深度学习·transformer
默_笙5 小时前
🧀 让大模型的答案"流"出来:NestJS AI 模块 + SSE + RxJS 实战
javascript·人工智能
Teable任意门互动5 小时前
优锘科技北京客户管理数字化落地案例|HAP明道云搭建客户管理平台-任意门互动科技(HAP 官方实施服务商)
大数据·人工智能·科技·信息可视化·信息与通信
Smoothcloud润云5 小时前
PyTorch推理请求超时与取消处理实战
人工智能·pytorch·python·深度学习·机器学习·gpu算力·gpu
阿里云大数据AI技术5 小时前
在 EMR Serverless Spark 的 Ray 作业中使用增强自适应弹性扩容机制
人工智能·spark
虾..5 小时前
计算机图形学:光栅化
人工智能
ACME20445 小时前
48㎡、57㎡、109㎡:三间铺分别适合开什么店
人工智能
豆包MarsCode5 小时前
✍️ TRAE 双端融合,全面升级|征文活动开启,赢京东卡、TRAE 精美周边好礼!
人工智能
weixin_448119945 小时前
Datawhale计算机中的数学#MCS #Mathematics #Maths #Yibo #翊博 #翊博在这里 #菲尔兹奖 #yibohere
人工智能