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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wintergeng/article/details/49182445

---------- 

这两天在调试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"

重新编译,至此问题解决!希望对有需要的同学能帮助到。

展开阅读全文

没有更多推荐了,返回首页