c++ - 将 opencv 2.4.6 与 Qt 库链接

标签 c++ qt opencv

我在 windows 7 上工作,并安装和编译了 OPENCV 2.4.6,它与 microsoft studio 2012 完美配合,所以我知道如何找到 OPENCV include 和 lib 的路径,并在系统变量

但是到了QT,就完全不行了。我知道在 stackoverflow 上有很多关于如何在 Windows 中将 opencv 与 QT 链接的问题,但我尝试了所有答案,但对我来说从来没有成功。

这是我的适用于 visual studio 2012 的配置。

系统变量路径:

  1. D:\Program Files\opencv\build\x64\vc11\bin;

包含路径:

  1. D:\Program Files\opencv\build\include\;
  2. D:\Program Files\opencv\build\include\opencv;
  3. D:\Program Files\opencv\build\include\opencv2;

库路径:

  1. D:\Program Files\opencv\build\x64\vc11\lib;

我已经下载并安装了QT 5.1.1,并开始了一个项目。在专业版中,我是这样编辑的,

INCLUDEPATH += D:\Program Files\opencv\build\include \

我认为这应该可以工作,但是在 main() 中,当我添加标题时

#include "opencv/cv.h"
#include <opencv/highgui.h>

QT 编译器总是告诉我'没有那个文件或目录'

这种愚蠢的问题困扰了我好几天,我不知道哪里出了问题,有没有人能帮帮我。

更新: 谢谢大家,Gibby 的回答帮助我解决了第一个“找不到 header ”的问题,但是现在运行程序,我遇到了像“release\test.exe:-1: error:LNK1120: 6”这样的问题 Unresolved external 问题”

肯定是库链接的问题,我试过了

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    -lopencv_core246 \
    -lopencv_highgui246 \
    -lopencv_imgproc246 \
    -lopencv_features2d246 \
    -lopencv_calib3d246 \ 

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    -lopencv_core246.lib \
    -lopencv_highgui246.lib \
    -lopencv_imgproc246.lib \
    -lopencv_features2d246.lib \
    -lopencv_calib3d246.lib \ 

或来自How to link opencv in QtCreator and use Qt library

LIBS += -LD:\Program Files\opencv\build\x64\vc11\lib \
    libopencv_core246 \
    libopencv_highgui246 \
    libopencv_imgproc246 \
    libopencv_features2d246 \
    libopencv_calib3d246 \

但这些都不起作用

最佳答案

您需要使用 Qt 构建 OpenCV。步骤是,

  1. 在您的计算机上安装 Qt(我对所有版本的 OpenCV 使用 Qt4,因为我的应用程序基于它,但您也可以使用 Qt5)。
  2. 记下安装路径(对我来说,它是 D:/Qt/4.8.5/ 并将其放入您的 Path 环境变量中。<
  3. 打开 CMake 并开始 OpenCV 的构建过程。确保选择 CMAKE 下的选项 WITH_QT
  4. 我的 CMAKE_INSTALL_PREFIX ss D:/Program Files/opencv 并且它也在我的 Path 环境变量中;你可以相应地改变你的。
  5. 需要使用其他选项进行构建。生成文件,然后构建二进制文件并在上述路径中安装 OpenCV。
  6. 您的 OpenCV 安装现在支持 Qt,您可以在 VS 和 Qt Creator 中使用它。如需进一步引用,请前往 this link .

HTH

关于c++ - 将 opencv 2.4.6 与 Qt 库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20334254/

相关文章:

c++ - 从网络中的网络摄像头捕获和发送图像的最有效方式

c++ - 将函数参数限制为某些枚举值

c++ - 创建以 C (MFC) 格式化的字符串

qt - 删除警告- QML 连接 : Cannot assign to non-existent property "onValueChanged"

OpenCv SVM 输出文件格式

c++ - wxwidgets 快速定期数据更新

python - 在QTableWidget中,如何确定空单元格是否可编辑?

c++ - 使用 GCC 4.6.2 C++ Qt、MinGW、Vista 设置堆栈大小

android-studio - 在android studio中使用opencv进行人脸检测。 E/AndroidRuntime:致命异常:main

opencv - OpenCV Mat访问和使用Mat_常见错误