c++和opencv-利用opencv中的张正友方法进行摄像机标定

问题描述

利用opencv中的张正友方法进行摄像机标定

利用opencv和c++进行摄像机标定,采用的程序是网上的基于张正友的标定方法,网上说的结果和我的执行结果不同,是采用了不同角度的20张图片,理论上这20张图片的旋转向量和平移向量应该不相同,但是我最后求出来的旋转矩阵和平移向量竟然都是相同的,结果如下,,,,,,不知道是怎么回事儿??请教高手解答啊
第1幅图像的旋转向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}
第1幅图像的旋转矩阵:
{-0.00898613,0.996418,-0.0840802}
{0.999955,0.00919614,0.00211072}
{0.00287637,-0.0840575,-0.996457}

第1幅图像的平移向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}

第2幅图像的旋转向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}
第2幅图像的旋转矩阵:
{-0.00888817,0.999563,-0.0282044}
{0.999956,0.00896878,0.00273282}
{0.00298458,-0.0281789,-0.999598}

第2幅图像的平移向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}

第3幅图像的旋转向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}
第3幅图像的旋转矩阵:
{-0.00900118,0.999019,-0.0433501}
{0.999954,0.00913592,0.00291099}
{0.00330417,-0.0433219,-0.999056}

第3幅图像的平移向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}

第4幅图像的旋转向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}
第4幅图像的旋转矩阵:
{-0.00939113,0.99699,-0.0769601}
{0.999953,0.00916736,-0.00326046}
{-0.00254512,-0.0769871,-0.997029}

第4幅图像的平移向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}

第5幅图像的旋转向量:
{{-2.65698e+303,-2.65698e+303,-2.65698e+303}}
第5幅图像的旋转矩阵:
{-0.00942485,0.995629,-0.0929177}
{0.999954,0.00921809,-0.00265418}
{-0.00178606,-0.0929384,-0.99567}

解决方案

看起来像是向量没有初始化,或者是没有分配内存。

解决方案二:

参考:http://www.cnblogs.com/Akagi201/archive/2012/05/19/2509184.html

解决方案三:

你好,我在利用opencv中的张正友方法进行摄像机标定的时候遇到了和你一模一样的情况,请问到后来你是怎么解决这个问题的呀?

解决方案四:

我也遇到相同的问题,解决了吗

解决方案五:

我也遇到相同的问题,解决了吗

解决方案六:

我把这个问题解决了,是程序本身有问题

解决方案七:

我把这个问题解决了,是程序本身有问题

时间: 2024-09-27 17:59:16

c++和opencv-利用opencv中的张正友方法进行摄像机标定的相关文章

如何利用opencv实现在视频中每隔固定的n像素列数取一副图像?

问题描述 如何利用opencv实现在视频中每隔固定的n像素列数取一副图像? 在视频中,视频向前播放,视频画面每隔固定的像素列数n后,取当前的画面.各位大神有没有思路? 解决方案 视频不是以帧的形式播放的吗?那怎么实现你这种方法哦.除非你的n个列数就是一幅图像列数

在vs2010中如何利用opencv使用“打开文件”选择路径读取视频信息

问题描述 在vs2010中如何利用opencv使用"打开文件"选择路径读取视频信息 代码如下,在网上找了好多都是使用绝对路径才能读取视频信息,我想用"打开文件"取得的文件路径,利用cvCaptureFromAVI读取视频应该怎么处理?或者可以用opencv提供的其他函数来读取视频的相关信息吗? 以下代码的错误提示:"cvCreateFileCapture": 不能将参数 1 从"CString"转换为"const c

camera+-ubuntu下qtcreator工程中利用opencv编写工程,摄像头无法第二次打开

问题描述 ubuntu下qtcreator工程中利用opencv编写工程,摄像头无法第二次打开 ubuntu下qtcreator工程中利用opencv编写工程,opencv库操作,摄像头第一次可以正常使用,一旦点击停止键后,无法第二次打开,再次运行时就会报错.libv4l2: error turning on stream: Invalid argument cap 在析构函数中我有作释放.请问这是什么原因啊?? ---------------- VideoCapture cap; cap.op

利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

原文:利用OpenCV检测图像中的长方形画布或纸张并提取图像内容 基于知乎上的一个答案.问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢的画,用手机找了下来,可是回家一看歪歪斜斜,脑补原画内容又觉得不对,那么就需要算法辅助来从原图里提取原来的内容了.不妨把应用的场景分为以下: 纸张四角的坐标(图中红点)已知的情况 也就是上面的左图中4个红点是可以准确获取,比如手动标注

C# 利用 OpenCV 进行视频捕获 (笔记)

原文:C# 利用 OpenCV 进行视频捕获 (笔记) 简介 这个项目是关于如何从网络摄像头或者视频文件(*.AVI)中捕获视频的,这个项目是用C#和OPENCV编写的. 这将有助于那些喜欢C#和OpenCV环境的人.这个程序完全基于Visual Studio 2010 version C#.NET环境.这个程序展示了怎样用C#.NET环境的Visual Studio 2010 IDE编写OpenCV,这个程序是一个怎样用Visual Studio 2010,C#.NET创建程序的例子. 在这篇

c++-利用OpenCV比较图像旋转角度

问题描述 利用OpenCV比较图像旋转角度 有两个图,已经加载到Mat中,期中的一个图是另一个图经过一定的旋转得到的,我想利用OpenCV来获得被旋转图是旋转了多少度.希望各位大虾能给点思路或者方法,谢谢了! 解决方案 不知道我说的符不符合你的情况哈 . 我这边以前也弄过图片旋转, 一张图片经过旋转后,再保存就会发现它的 width 跟height不一样的 , 一般是变大,比如旋转九十度,那么它的宽就成了高了,旋转的角度与宽高变化的关系可以用数学式子整理出来.不知道用在你那上面对不对了 .这只是

怎样实现c++利用opencv实现人脸检测与识别

问题描述 怎样实现c++利用opencv实现人脸检测与识别 就是指通过摄像头保存识别的人脸,再次识别时如果被识别的人是已经添加图片的,就把他的名字显示出来,如果没有就将人脸保存.求大神,提前谢谢. 解决方案 这你需要机器学习才能够实现. 具体学习方法可以用BOOSTING算法,随机森林算法或者K邻近算法,具体代码可以从<学习OPENCV>中找到,若是不想自己敲代码,也可以在百度中区找.其实OPENCV的sample里也有相关的代码.不过你自己需要建立自己的数据库.

利用opencv实现人脸识别

问题描述 利用opencv实现人脸识别 目前本人已实现实时人脸检测,但怎样进一步完成特征采集存入数据库,并将检测到的人脸与数据库中的比对却没有头绪.求助!!! 解决方案 建议先从几何角度入手.先通过两眼具体.眼嘴距离等.判断正面人脸.有经验后.再尝试其他算法

初始化-MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以

问题描述 MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以 对对话框创建流程不是太清楚. 下面代码只能通过按钮点击响应才可以,但直接放在对话框初始化以及onsize里面就不行. cv::Mat mat, mat2; mat = cv::imread("D:\test1.jpg", 1); if(! mat.data) { MessageBox(_T("error", "no image loaded!"), MB_OK); retu