C++ 将OpenCV与Qt链接时出错

C++ 将OpenCV与Qt链接时出错,c++,qt,opencv,C++,Qt,Opencv,当我运行代码时,会出现如下错误: D:\ubunto\OpenCV\OpenCV\build\include\opencv2\imgproc\imgproc.hpp:50:错误:opencv2/core/core.hpp:没有这样的文件或目录 我不知道这是因为opencv链接还是其他原因 你可以在下面找到我的代码 格式1.h 首先,出现此错误是因为编译器无法从#include中找到core.hpp,无法将包含到imgproc.hpp中。 我想您可以尝试将您的INCLUDEPATH更改为: INC

当我运行代码时,会出现如下错误:

D:\ubunto\OpenCV\OpenCV\build\include\opencv2\imgproc\imgproc.hpp:50:错误:opencv2/core/core.hpp:没有这样的文件或目录

我不知道这是因为opencv链接还是其他原因

你可以在下面找到我的代码

格式1.h


首先,出现此错误是因为编译器无法从
#include
中找到
core.hpp
,无法将
包含到
imgproc.hpp
中。 我想您可以尝试将您的
INCLUDEPATH
更改为:

  • INCLUDEPATH+=-I“D:\ubunto\OpenCV\OpenCV\build\include\”
  • INCLUDEPATH+=-I“D:\ubunto\OpenCV\OpenCV\build\include\opencv2\imgproc”

    INCLUDEPATH+=D:\ubunto\OpenCV\OpenCV\build\include\opencv2\core

    等等
  • 第二,您将动态库链接错误。你应该写:

  • LIBS+=-L“D:\ubunto\OpenCV\OpenCV\build\x86\mingw\bin“-lopencv\u core-lopencv\u imgproc
  • 您应该通过以下方式链接库:
    -l


    我希望它能帮助你。

    斜线划错了。反斜杠
    \
    具有特殊含义。在qt目录分隔符中,使用常规斜杠
    /
    (qt将其转换为windows标准)


    另外,这个
    LIBS+=…bin*.dll
    也是错误的,请参见备选答案。

    未找到的标题是编译,而不是链接器问题。Islam,你的.pro仍然错误
    qmake
    无法分析定义
    LIBS
    部分。查看我的代码
    LIBS+=-L“D:\ubunto\OpenCV\OpenCV\build\x86\mingw\bin”-lopencv\u core和其他
    #ifndef FORM1_H
    #define FORM1_H
    
    #include <QDialog>
    
    //#include<highgui.h>
    //#include<core/core.hpp>
    //#include<cvwimage.h>
    #include<opencv.hpp>
    #include<imgproc/imgproc.hpp>
    //#include <opencv_modules.hpp>
    //#include <video/video.hpp>
    #include <highgui/highgui.hpp>
    
    
    
    namespace Ui {
    class Form1;
    }
    
    class Form1 : public QDialog
    {
        Q_OBJECT
    
    public:
        explicit Form1(QWidget *parent = 0);
        QImage getQImageFromFrame(cv::Mat frame);
        ~Form1();
    
    private slots:
        void on_pushButton_clicked();
        void updatePicture();
    private:
        Ui::Form1 *ui;
        cv::Mat *mt;
        cv::VideoCapture  *video;
        QTimer * timer;
        QImage *img;
    
    };
    
    #endif // FORM1_H
    
    #include "form1.h"
    #include "ui_form1.h"
    #include <QtCore>
    #include <QtGui>
    #include <QGraphicsAnchorLayout>
    #include <QGraphicsScene>
    #include <QGraphicsView>
    #include <QGraphicsWidget>
    #include "qimage.h"
    #include <QFileDialog>
    #include <QPixmap>
    #include "qpixmap.h"
    
    Form1::Form1(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Form1)
    {
        ui->setupUi(this);
    
    }
    
    QImage Form1::getQImageFromFrame(cv::Mat frame) {
        //converts the color model of the image from RGB to BGR because OpenCV uses BGR
        cv::cvtColor(frame, frame, CV_RGB2BGR);
        return QImage((uchar*) (frame.data), frame.cols, frame.rows, frame.step, QImage::Format_RGB888);
    }
    
    Form1::~Form1()
    {
        delete ui;
    }
    
    void Form1::updatePicture()
    {
        video >> mt;
        img = getQImageFromFrame(mt);
        ui->label->setPixmap(QPixmap::fromImage(image));
    
    }
    
    void Form1::on_pushButton_clicked()
    {
        fileName = QFileDialog::getOpenFileName(this,
            tr("Open Image"), "/elhandasya/Desktop", tr("Image Files (*.png *.jpg *.bmp)"));
        //QPixmap pix(fileName);
        video->open(filename);
    
    
        timer = new QTimer(this);
        connect(timer, SIGNAL(timeout()), this, SLOT(updatePicture());
        timer->start(20);
    
    }
    
    #-------------------------------------------------
    #
    # Project created by QtCreator 2013-12-16T09:23:28
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = Video_Player
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
            form1.cpp
    
    HEADERS  += form1.h
    
    FORMS    += form1.ui
    
    INCLUDEPATH += -I"D:\ubunto\OpenCV\opencv\build\include\opencv2\imgproc"
    INCLUDEPATH += -I"D:\ubunto\OpenCV\opencv\build\include\opencv2\core"
    INCLUDEPATH += -I"D:\ubunto\OpenCV\opencv\build\include\opencv2"
    
    
    LIBS += -LD:\ubunto\OpenCV\opencv\build\x86\mingw\bin
     -lopencv_core
     -lopencv_imgproc
     -lopencv_highgui
     -lopencv_legacy
     -lopencv_gpu
     -lopencv_video
     -lopencv_ml
     -lopencv_contrib
    
    #LIBS += D:\ubunto\emgu\emgucv-windows-x86 2.4.0.1717\lib
    
    
    #-opencv_calib3d240
    #-opencv_videostab240
    #-opencv_calib3d240
    #-opencv_contrib240
    #-opencv_core240
    #-opencv_features2d240
    #-opencv_flann240
    #-opencv_gpu240
    #-opencv_highgui240
    #-opencv_imgproc240
    #-opencv_legacy240
    #-opencv_ml240
    #-opencv_nonfree240
    #-opencv_objdetect240
    #-opencv_photo240
    #-opencv_stitching240
    #-opencv_video240
    
    INCLUDEPATH += D:/ubunto/OpenCV/opencv/build/include/opencv2
    
    LIBS += D:/ubunto/OpenCV/opencv/build/x86/mingw/bin*.dll #wrong