0

我正在使用 Eclipse CDT(Indigo Service Release 2)在 Windows 7 64 位机器上使用 opencv 2.4.0。我按照 opencv 下载站点上描述的步骤从源代码(使用 cmake/visual studio express 10)编译了 opencv。

当我使用 opencv C 函数(在我的 C++ 代码中)时,一切都运行良好。当我尝试使用 cv::Mat 时,它给了我一个链接错误(例如:未定义的对 `cv::Mat::Mat(_IplImage const*, bool)' 的引用)。

  • 我需要链接哪些库才能使 opencv C++ 函数与纯 C 函数一起工作?我已经与 opencv_core240 和其他我需要的链接,它适用于 opencv C 函数。

  • 我注意到 2 个版本的 ocv 库,一个带有后缀“d”,即 opencv_core240 和 opencv_core240d。2有什么区别?

4

2 回答 2

1
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
using namespace std;

int main()
{
    IplImage *image = cvLoadImage("C:\\any_picture.jpg");
    Mat m = Mat(image);
    imshow("test",m);
    waitKey();
    return 0;
}
  1. 通过链接调试文件(如 opencv_core240d.lib、opencv_highgui240d.lib、opencv_imgproc240d.lib)尝试上述代码
  2. 将bin文件夹的路径添加到环境变量中
  3. 尝试获取最新的opencv ie 2.4.3
于 2013-01-13T02:03:42.663 回答
0

找到了解决办法。当使用带有 mingw 工具链的 eclipse 时,您也应该使用 mingw 编译 opencv。从命令行编译opencv对我有用。

  1. 遵循 opencv InstallGuide中的“从命令行使用 GCC 编译”部分
  2. 除了 mingw32-make、make -j 之外,还要执行“make install”。这将在您构建 opencv 二进制文件的文件夹中创建一个安装目录。opencv 库将被放置在 install/lib
  3. install/lib 中的 lib 文件将具有“.dll.a”扩展名,例如“libopencv_core243.dll.a”。要链接到项目中的这些 lib 文件,请转到 Properties->C/C++ General->Paths and Symbols->Libraries。然后添加不带前缀“lib”和后缀“.dll.a”的库名称。所以要链接到“libopencv_core243.dll.a”只需使用“opencv_core243”
于 2013-01-13T22:30:06.957 回答