• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

使用matlab得到校正相机以及如何在opencv里使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

因为想i标定对于一款相机来说只需要标定一次即可,小编这里采取的是matlab app傻瓜式标定方法,非常简单。
1、打开matlab,如图中红色线条圈出的地方,此处使用matlab2016b:

2.打开存放照片的文件夹,全部选中,导入图片

3.此处填写标定板方块边长,是指棋盘格每个小格的实际距离

4、然后点击上方的Calibrate,处理完后点击Export Camera Parameters(就是绿色对勾)就可以导出数据,可以在matlab的工作区看见,右侧标出的是以后主要用到的数据:

这里对matlab得到的结果进行一个简要的说明:
畸变矩阵:
{k1 k2 p1 p2 k3 }
matlab中 RadialDistortion 是k1 k2 k3, TangentialDistortion是p1 p2
内参矩阵:
ans =

955.8925(fx) 0 0
0 955.4439(fy) 0
296.9006(cx) 215.9074(cy) 1.0000

opencv里需要用到内参矩阵和畸变矩阵使用示例:

double fx,fy,cx,cy,k1,k2,k3,p1,p2;
    fx=955.8925;
    fy=955.4439;
    cx=296.9006;
    cy=215.9074;
    k1=-0.1523;
    k2=0.7722;
    k3=0;
    p1=0;
    p2=0;
    Mat cameraMatrix = (cv::Mat_<float>(3, 3) <<
        fx, 0.0, cx,
        0.0, fy, cy,
        0.0, 0.0, 1.0);
   //    std::cout << cameraMatrix << std::endl;
   Mat distCoeffs = (cv::Mat_<float>(5, 1) <<
        k1, k2, p1, p2, k3);
     //  std::cout << distCoeffs << std::endl;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap