【OpenCV】摄像机标定+畸变校正

摄像机标定

本文目的在于记录如何使用MATLAB做摄像机标定,并通过opencv进行校正后的显示。

首先关于校正的基本知识通过OpenCV官网的介绍即可简单了解:
http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html

对于摄像机我们所关心的主要参数为摄像机内参,以及几个畸变系数。上面的连接中后半部分也给了如何标定,然而OpenCV自带的标定程序稍显繁琐。因而在本文中我主推使用MATLAB的工具箱。下面让我们开始标定过程。

标定板

标定的最开始阶段最需要的肯定是标定板。两种方法,直接从opencv官网上能下载到:
http://docs.opencv.org/2.4/_downloads/pattern.png

方法二:逼格满满(MATLAB)

J = (checkerboard(300,4,5)>0.5);
figure, imshow(J);

这里写图片描述

采集数据

那么有了棋盘格之后自然是需要进行照片了。不多说,直接上程序。按q键即可保存图像,尽量把镜头的各个角度都覆盖好。

#include "opencv2/opencv.hpp"
#include <string>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    VideoCapture inputVideo(0);
    //inputVideo.set(CV_CAP_PROP_FRAME_WIDTH, 320);
    //inputVideo.set(CV_CAP_PROP_FRAME_HEIGHT, 240);
    if (!inputVideo.isOpened())
    {
        cout << "Could not open the input video " << endl;
        return -1;
    }
    Mat frame;
    
### 回答1: 使用OpenCV的单目摄像机来测量距离可以用单目摄像机标定calibration)技术来实现。它可以使用棋盘角点检测算法(chessboard corner detection algorithm)来测量两个相机之间的距离。 ### 回答2: Python OpenCV单目摄像机测距是通过计算机视觉技术来实现的一种测量目标物体距离的方法。在这种方法中,我们使用单目摄像机来捕捉目标物体的图像,并利用图像中的一系列特征信息来计算目标物体与摄像机之间的距离。 具体实现时,首先需要进行相机标定,获取摄像机的内部参数和畸变系数,以便后续校正图像。接下来,通过捕捉目标物体的图像,在图像中识别并提取目标物体的特征点,比如角点、边缘等。 然后,利用摄像机的内部参数和外部参数(比如摄像机与目标物体的相对位置关系)来建立摄像机成像模型,通过投影变换将目标物体在世界坐标系中的位置映射到图像坐标系中。 根据图像中特征点的位置关系以及摄像机的成像模型,可以通过三角测量的方法计算出目标物体与摄像机之间的距离。常用的三角测量方法包括视差法、尺度因子法等。 最后,根据摄像机标定参数和特征点的位置信息,可以通过简单的数学计算来估计目标物体与摄像机之间的距离。 总而言之,Python OpenCV单目摄像机测距是一种基于计算机视觉技术的距离测量方法,通过利用摄像机的成像模型和特征点的位置关系,可以实现对目标物体与摄像机之间距离的估计。通过相机标定和图像处理算法,可以获得较为准确的测距结果。
评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值