您的位置:首页 > 产品设计 > UI/UE

VS中报错 “ Error:未定义标识符 cvRodrigues2“

2015-10-16 18:53 405 查看
---------- 

这两天在调试opencv的时候,要将从matlab中获取到的摄像机标定好的参数导入到opencv中,并且对Rotation这个3*1向量通过“罗德里格斯变换”转化成opencv中可以使用的3*3的矩阵。但是在调用这个cvRodrigues2()函数时候,却一直报错,我没有截图,就用文字复述了,报错是:Error:未定义标识符cvRodrigues2()。
 

//罗德里格斯变换 (指针方式实现)

CvMat *pR_vec = (CvMat *)cvLoad("Rotation.xml");
CvMat *pR_matrix = cvCreateMat(3,3,CV_64FC1);
cvRodrigues2(pR_vec, pR_matrix);
cvSave("R_matrix.xml",&pR_matrix);


但是cvRodrigues2()这个函数是自带的,不应该出现这样的问题,于是我就百度问题,但好像大家没有遇到这样的问题(因为搜索不到),导师提醒我在lib这个文件夹中添加一些库文件(注:我的opencv版本是3.0的,所以只需要几个库文件就ok了!),但是在添加之后也没有解决问题。
根据一个网友的提示(确实他无意中给了我一个解决路径),[点击这里],(http://blog.csdn.net/ldily110/article/details/7596127)

我查看了opencv中自带的实例stereo_calib.cpp,对比了文件头,添加了这两个包括文件:

#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/imgcodecs.hpp"


重新编译,至此问题解决!希望对有需要的同学能帮助到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息