将opencv2.4.6与Qt库链接

link opencv 2.4.6 with Qt library

本文关键字:Qt 链接 opencv2      更新时间:2023-10-16

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

但当谈到QT时,它完全不起作用。我知道在stackoverflow上有很多关于如何在windows中将opencv与QT联系起来的问题,但我尝试了所有的答案,但对我来说从未成功。

这是我的配置,适用于visualstudio2012。

系统变量路径:

  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

lib路径:

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

我已经下载并安装了QT5.1.1,并开始了一个项目。在专业版中,我这样编辑,

INCLUDEPATH += D:Program Filesopencvbuildinclude 

我认为这应该是有效的,但在main()中,当我添加标题时

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

QT编译器总是告诉我"没有这样的文件或目录"

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

更新:感谢大家,Gibby的回答帮助我解决了"找不到头"的第一个问题,但现在运行程序时,我遇到了类似"release\test.exe:-1:error:LNK1120:6个未解决的外部"的问题

所以这肯定是由于图书馆的链接,我尝试过

LIBS += -LD:Program Filesopencvbuildx64vc11lib 
    -lopencv_core246 
    -lopencv_highgui246 
    -lopencv_imgproc246 
    -lopencv_features2d246 
    -lopencv_calib3d246  

LIBS += -LD:Program Filesopencvbuildx64vc11lib 
    -lopencv_core246.lib 
    -lopencv_highgui246.lib 
    -lopencv_imgproc246.lib 
    -lopencv_features2d246.lib 
    -lopencv_calib3d246.lib  

或来自如何在QtCreator中链接opencv并使用Qt库

LIBS += -LD:Program Filesopencvbuildx64vc11lib 
    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_PREFIXD:/Program Files/opencv,它也在我的Path环境变量上;你可以相应地改变你的
  5. 需要使用其他选项进行构建。生成文件,然后构建二进制文件,并在上述路径中安装OpenCV
  6. 您的OpenCV安装现在支持Qt,您可以在VS和Qt Creator中使用它。如需进一步参考,请点击此链接

HTH

我遇到了同样的问题,通过将项目设置为发布(qt窗口的左下角)而不是调试,然后将qt和opencv库复制到bin文件夹中,解决了这个问题。一旦你将你的项目设置为构建一个.exe文件将在bin文件夹中生成。运行该应用程序会告诉你仍然缺少什么dll,在opencv/build/x64/vc11/bin中找到opencv dll,在qt/qt(版本)/(版本)(编译器)/bin 中找到qt dll

~ Gibby

因为空格字符。

qmake可能认为"D:\Program"answers"Files\opencv\build\include"是分开的。

用双引号把你的路围起来。