初探单目相机测距——相机标定

简介: 初探单目相机测距——相机标定

标定准备


  单目相机可以根据相似三角形原理进行图像测距,在测距之前需要作如下准备:


  1. 单目相机一个(实验用可任意购买,一般越便宜的精度自然就越差了)


  1. 标定版一个(可上OpenCv官网下载)


  1. MATLAB中CameraCalibrator工具箱(或者自行采用张氏标定法进行标定)


  1. 待测目标



标定步骤


  我们将准备好单目相机连接PC端测试验证是否连接好,固定好我们的标定板,使用单目相机对准标定板进行拍照,这里我拍摄了42组图像(如下图所示:)


image.png

打开matlab的CameraCalibrator工具箱点击AddImages,选择From file从你拍摄标定板图像,然后设置实体标定板上黑色方块的边长,点击确定等待导入。


在导入后选择普通相机(另一个选项是鱼眼相机),然后点击设置(Options) 在复选框这里点击2 Coefficients SKew Tangential Distortior 点击运行(Calibrate)待运行完毕后,导出数据,在工作区内查看KP内参矩阵和焦距。

image.png

image.png

image.png

image.png

image.png


image.png

image.png

image.png


标定结果


相机标定图像以及MSE图像(PDD9.9包邮相机,误差大了些哈哈)

image.png

image.png

根据张氏测距可得如下参数:

P值
P1 0.00770644
P1 0.014762425
焦距
FX 1321.395754
FY 1308.603399
K值
K1 0.080593716
K2 -0.0025207783
K3 0
内参矩阵:
1321.395754 0 0
13.90004046 1308.603399 0
1254.996814 621.1465241 1



相关文章
|
8月前
|
计算机视觉 Python
Yolov5双目测距-双目相机计数及测距教程(附代码)
Yolov5双目测距-双目相机计数及测距教程(附代码)
|
编解码 前端开发 算法
基于OpenCV的双目摄像头测距(误差小)
首先进行双目摄像头定标,获取双目摄像头内部的参数后,进行测距;本文的双目视觉测距是基于BM算法。注意:双目定标的效果会影响测距的精准度,建议大家在做双目定标时,做好一些(尽量让误差小)。
11157 3
基于OpenCV的双目摄像头测距(误差小)
|
8月前
|
编解码 对象存储 UED
[Halcon&标定] 单相机标定
[Halcon&标定] 单相机标定
282 1
|
8月前
|
算法
[Halcon&标定] 相机自标定
[Halcon&标定] 相机自标定
180 1
|
8月前
|
文字识别 Python
Halcon 学习笔记五:几何定位+仿射变换+测量
Halcon 学习笔记五:几何定位+仿射变换+测量
737 0
|
机器学习/深度学习 算法 自动驾驶
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
基于图像特征检测——使用相位拉伸变换(Matlab代码实现)
132 0
|
机器学习/深度学习 传感器 算法
基于MATLAB的单目或双目结构光正弦条纹校准
基于MATLAB的单目或双目结构光正弦条纹校准
|
算法
通过光流法检测运动物体,得到图像运动场
通过光流法检测运动物体,得到图像运动场
402 0
通过光流法检测运动物体,得到图像运动场
|
传感器 算法 计算机视觉
单目测距(yolo目标检测+标定+测距代码)上
单目测距(yolo目标检测+标定+测距代码)
|
自动驾驶 计算机视觉
单目测距(yolo目标检测+标定+测距代码)下
单目测距(yolo目标检测+标定+测距代码)