c ++ opencv findHomography()函数中未定义的reerence

Posted

技术标签:

【中文标题】c ++ opencv findHomography()函数中未定义的reerence【英文标题】:c++ undefined rererence in opencv findHomography() function 【发布时间】:2016-06-14 22:29:18 【问题描述】:

我尝试在以下 opencv/c++ 示例http://docs.opencv.org/3.1.0/d7/dff/tutorial_feature_homography.html#gsc.tab=0 中运行代码 sn-p

部分代码如下:

 std::vector<Point2f> obj;
 std::vector<Point2f> scene;
 for( size_t i = 0; i < good_matches.size(); i++ )
 
   //-- Get the keypoints from the good matches
   obj.push_back( keypoints_object[ good_matches[i].queryIdx ].pt );
   scene.push_back( keypoints_scene[ good_matches[i].trainIdx ].pt );
 
 Mat H = findHomography( obj, scene, RANSAC );

我得到以下编译错误

 /home/yudori/Documents/qt_projects/featureTest/main.cpp:57: error: undefined reference to `cv::findHomography(cv::_InputArray const&, cv::_InputArray const&, int, double, cv::_OutputArray const&, int, double)' 

上线

 Mat H = findHomography( obj, scene, RANSAC );

我检查了“calib3d.hpp”头文件,它似乎包含对 findHomography 函数的类似声明,但我不禁认为我遗漏了一些东西。我在 Ubuntu 上运行 opencv 3.1.0,我对 c++ 还很陌生,请帮忙。

【问题讨论】:

【参考方案1】:

如果您使用的是 linux,请将其添加到您的编译字符串 -lopencv_calib3d,如果您使用的是 windows 和 Visual Studio,请在 Additional Libraries 中添加 opencv_calib3d

【讨论】:

以上是关于c ++ opencv findHomography()函数中未定义的reerence的主要内容,如果未能解决你的问题,请参考以下文章

C++/openCV - 为啥显示图像会产生 linux 分段错误? (openCV 错误?)

c ++ opencv在窗口上显示图像

C/C++开发,linux下OpenCV+gcc+cmake编译环境搭建

图片模糊度判断程序(C++opencv)

opencv想到的

用OpenCV开发人脸识别软件,用Java好还是用C/C++好