visual-studio-2010 - 使用 Qt Creator 设置 OpenCV 2.4.2

标签 visual-studio-2010 qt opencv qt-creator

我尝试了两种方法来使用 opencv 和 qt creator 第一个使用 Mingw,其中 dll 和 .dll.a 文件已经使用 opencv 库下载,我只是在 .pro 文件中添加对 .dll.a 文件的引用,如下所示

INCLUDEPATH += D:\\OpenCV\\opencv\\build\\include
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_calib3d242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_contrib242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_core242.dll.a
LIBS += D:\\OpenCV\\opencv\\build\\x64\\mingw\\lib\\libopencv_features2d242.dll.a

我有一个简单的代码来测试opencv:

#include <QtCore/QCoreApplication>
#include <opencv/cv.h>

using namespace cv;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Mat image;

    return a.exec();
}

但是我遇到了如下构建问题

C:\Users\Kato\Documents\QT projects\QtOpenCVYaRab\debug\main.o:-1: In function ~Mat': d:\OpenCV\opencv\build\include\opencv2\core\mat.hpp:278: error: undefined reference tocv::fastFree(void*)' d:\OpenCV\opencv\build\include\opencv2\core\mat.hpp:367: error: undefined reference to `cv::Mat::deallocate()' :-1: error: collect2: ld returned 1 exit status

这是一些编译输出:

Running build steps for project QtOpenCVYaRab...
Configuration unchanged, skipping qmake step.
Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Users/Kato/Documents/QT projects/QtOpenCVYaRab'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL

 d:/OpenCV/opencv/build/include/opencv2/core/mat.hpp:278: undefined reference to `cv::fastFree(void*)'
debug/main.o:d:/OpenCV/opencv/build/include/opencv2/core/mat.hpp:367: undefined reference to `cv::Mat::deallocate()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\QtOpenCVYaRab.exe] Error 1
mingw32-make: *** [debug] Error 2
The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project QtOpenCVYaRab (target: Desktop)
When executing build step 'Make'

第二种方法是使用 cmake 编译 opencv 库,然后使用 visual studio 2010 构建它并添加对 bin 文件夹中文件的引用,但我遇到了几乎相同的构建问题。

最佳答案

#include "iostream"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main()
{
    IplImage *image = cvLoadImage("C:\\lena.jpg");
    Mat im(image);
    imshow("TEST",im);
    waitKey();
    return 0;
}

这是你的 main.cpp...上面的程序显示了 lena 的图片...使用双反斜杠来指示 Windows 平台上的目录更改...一些 imread 如何为我工作所以我加载了图像作为 IplImage 并将其转换到 Mat...u cn 也执行以下操作..

 IplImage *image = cvLoadImage("C:\\lena.jpg",1);
 cvShowImage("TEST",image);
 cvWaitKey();

如前所述,您的 .pro 文件应包含以下行...

INCLUDEPATH += D:\OpenCV\opencv\build\include

LIBS +=-LD:\OpenCV\opencv\build\x64\mingw\lib\
-lopencv_core242\
-lopencv_highgui242\
-lopencv_imgproc242\
-lopencv_video242\

你的名为路径的系统变量应该有

  1. D:\Opencv2.4.2\opencv\build\x86\vc9\bin(如果你有 Qt 4.8.1 桌面 MSVC2008 (QtSDK) 调试作为你的目标)
  2. D:\Opencv2.4.2\opencv\build\x86\mingw\bin(如果你的目标是基于 Qt MinGW x86)
  3. D:\OpenCV2.4.2\opencv\build\common\tbb\ia32\vc9(mingw)(我添加了这个因为它显示了一些奇怪的错误...你可以试试)

编辑路径变量后关闭 Qt ide/应用程序并重新启动它以使系统变量更改得到反射(reflect)..

关于visual-studio-2010 - 使用 Qt Creator 设置 OpenCV 2.4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123479/

相关文章:

c++、fstream 和 seekp 和 seekg,奇怪的程序

c# - .Net 2.0、VS2010 和 Windows 8 上的 "Could not load file or assembly System.Drawing or one of its dependencies"错误

c++ - IplImages 中的 cv::putText

QtCreator : a big lot of stray errors

c++ - Qtilities : Custom property types for the property browsers?

visual-studio - 如何在 Visual Studio 中带回参数文档弹出窗口?

c++ - QGraphicsPolygonItem 绘制一个开放的(非封闭的)多边形

python - 更改cv2.rectangle的颜色

python - 我正在使用 OpenCV 制作蒙面人脸检测应用程序,以检测戴口罩的人脸,但出现错误

c++ - 在二维图像上绘制欧拉角旋转模型