matlab采集图像标定,双目相机标定流程(使用opencv采集图像、使用matlab标定相机参数)...

一、使用opencv采集双目图像

1.准备标准棋盘并打印

这里我们使用OpenCV提供的sample程序中的标定图片,图片位于opencv(C++版本)的安装路径:opencv\sources\samples\data下。使用打印机打印图片,注意不要选择适应边框,直接原大小打印,这样每一个小方格子的边长就是26mm(实际测量)。

2.摄像头采集双目图像并且保存

标定图片需要使用标定板在不同位置、不同角度、不同姿态下拍摄,以10~20张为宜。标定板需要是黑白相间的矩形构成的棋盘图,制作精度要求较高。下面代码是使用opencv读取双目照片,进行分割之后将左右相机的的照片分别保存道相应的文件夹下。用户在使用的时候只需要修改文件夹放置的位置即可。按C键采集一次图片。

#include #include #include #include #include using namespace cv;

using namespace std;

#define WIDTH 2560

#define HEIGHT 720

int main()

{

char c = 0;

VideoCapture capture(0);

Mat cam;

int i = 0;

if (!capture.isOpened())

{

cout<> cam

{

int w, h ;

w= cam.cols; //获取相机画面宽高

h= cam.rows;

imshow("cam",cam);

Rect rect0(0, 0, w/2, h); //(x,y,width,height)定义矩形框截取

Mat caml = cam(rect0); //截取左摄像头画面

Rect rect1(w/2, 0, w/2, h);

Mat camr = cam(rect1); //截取右半边

c = waitKey(10);

if(c == 'c') //按c键采集图像

{

num = to_string(i);

fileNameL = pathNameLeft + num + formatName;

fileNameR = pathNameRight + num + formatName;

imwrite(fileNameL, caml);

imwrite(fileNameR, camr);

++i;

cout<

二、使用matlab2018标定相机参数

1.内参

IntrinsicMatrix对应内参,注意这个和OpenCV中是转置的关系,注意不要搞错。

2.畸变参数

RadialDistortion:径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。

a02575c47f4e37aed6b8e31dc901e431.png

NOTE:

matlab选择3 Coefficients,则是K1,K2,K3三个参数非线性拟合;畸变不严重的情况下可以选择2 Coefficients,这样径向畸变就由K1,K2确定,K3为0。

对于畸变较小的图像中心区域,主要是k1起作用;对于畸变较大的边缘区域主要是k2起作用。普通相机这两个系数就够用了,对于鱼眼相机这种畸变特别大的才用的上第三个参数k3

TangentialDistortion:切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。

e2af3d096a57e4f4dd37ca0c18dfcaf8.png

opencv使用时,需要注意参数的排放顺序,即K1,K2,P1,P2,K3。千万不要以为k是连着的。

c154291da395dd29bfc4d12072bd6ae5.png

ref:

https://blog.csdn.net/ktigerhero3/article/details/83039964

https://blog.csdn.net/moonshapedpool/article/details/83105526

https://blog.csdn.net/yanli33/article/details/60478023

https://blog.csdn.net/Loser__Wang/article/details/51811347

http://www.cnblogs.com/chay/p/7551151.html

https://www.cnblogs.com/voyagee/p/7524946.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值