Windows中QT中的配置OPENCV
Configuration OpenCv in Qt in windows
我正在一个人工视觉项目中工作,这需要用于用户互动的GUI。
寻找一些Posibles解决方案后,我决定使用QT进行编程。
我遵循我发现的一些教程,但是最后我总是有同样的问题:如果我键入一些openCV代码,则该程序在启动后崩溃。
我正在使用OpenCV 2.4.10和QT 5.3.2使用Visual Studio编译器(MSCV 2010 for 32bit)。
出于学习目的,我正在尝试部署以下项目:
-
opencvbutton.pro:
QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = opencvButton TEMPLATE = app INCLUDEPATH += C:\opencv\build\include LIBS += -LC:\opencv\build\x86\vc10\lib -lopencv_calib3d2410d -lopencv_contrib2410d -lopencv_core2410d -lopencv_features2d2410d -lopencv_flann2410d -lopencv_gpu2410d -lopencv_highgui2410d -lopencv_imgproc2410d -lopencv_legacy2410d -lopencv_ml2410d -lopencv_nonfree2410d -lopencv_objdetect2410d -lopencv_ocl2410d -lopencv_photo2410d -lopencv_stitching2410d -lopencv_superres2410d -lopencv_ts2410d -lopencv_video2410d -lopencv_videostab2410d SOURCES += main.cpp mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui
-
mainwindow.h:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QPushButton> #include <QMessageBox> #include <opencv2/opencv.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); private slots: void handleButton(); private: QPushButton *m_button; }; #endif // MAINWINDOW_H
-
main.cpp:
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow mainWindow; mainWindow.showMaximized(); return app.exec(); }
-
最后,mainwindow.cpp: #include" mainwindow.h"
#include <QCoreApplication> using namespace cv; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // Create the button, make "this" the parent m_button = new QPushButton("Display image", this); // set size and location of the button m_button->setGeometry(QRect(QPoint(100, 100), QSize(200, 50))); // Connect button signal to appropriate slot connect(m_button, SIGNAL (released()), this, SLOT (handleButton())); } void MainWindow::handleButton() { // Define image path String imaloc = "C:\Users\Virtualmech\Desktop\ipRedCable.png"; // Mat instance declaration image. Mat image; // Load imaloc image in Mat instance. image = imread(imaloc); if(image.empty()){ QMessageBox::about(this, "Error", "Cannot load image"); }else{ // Declare name of window namedWindow("Display image"); // Show image imshow("Display image", image); // Wait for user interaction waitKey(0); // Close and destroy window destroyAllWindows(); } }
该项目由一个按钮组成,当您单击它时,程序应在路径iMaloc中显示图像。
我获得的应用程序输出是:
启动C: USER VirtualMech Documents opencvButton debug opencvbutton.exe ...
该程序意外完成。
c: users virtualmech documents opencvbutton debug opencvbutton.exe崩溃
这甚至没有开始。
如果我在mainwindow.cpp中评论OPENCV相关代码,则该程序运行完美。
现在,如果我仅声明(不定义)a MAT 实例,则应用程序退出运行,并再次显示相同的输出。
我认为这一定是一个配置问题,但我找不到它。
任何人都可以给任何线索吗?
感谢您的帮助和时间。
我想您忘了将必要的dll放在您要运行的可执行文件旁边,在您的情况下的调试文件夹中。
要找出您缺少哪些DLL,请尝试直接运行程序,而不是通过QT Creator的界面进行操作。
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 无法找到/读取配置文件.conf-FileIOException
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将OpenCV C++重写为EmguCV C#-如何使用指针
- cmake opencv for contrib - 配置不完整,发生错误
- 如何使用插件CDT在Eclipse中为Java开发人员配置OpenCV
- 如何在Mac上安装C 的OPENCV并使用NetBean配置
- 我可以将OpenCV的Release配置与我的应用程序的Debug配置一起使用吗
- Windows中QT中的配置OPENCV
- 无法使用Qt正确配置OpenCV?
- 在Netbeans中配置Opencv
- 在 Windows 7 中为 Eclipse 配置 opencv 2.4(预构建)时出错
- 如何配置Makefile以使用OpenCV
- eclipse上用于图像处理的OpenCV配置
- 如何在OpenCV和c++中配置CvSVM进行图像分类
- 在C::B上使用Borland配置OpenCV 2.2