OpenCV與QT聯合開發示例 windows下安裝QT並與visual studio 2017搭建開發環境

一、OpenCV及QT開發環境搭建

windows基於vs2017的opencv安裝html

windows下安裝QT並與visual studio 2017搭建開發環境數據庫

 

 

二、工程建立

一、導入Qt項目

選擇:QT VS Tools->Open Qt Project File(.pro)…windows

 

二、新建Qt項目

一、選擇:文件->新建->項目->測試->Qt GUI Application,輸入工程名,下一步…進行新建。網絡

 

二、「next」下一步函數

 

三、選擇依賴的模塊:最基礎的QtCore、QtGui、QtWidgets還有一些音/視頻、網絡、數據庫、XML、OpenGl相關的模塊,須要使用的直接勾選便可。post

 

四、finish(具體設置之後有機會在寫)測試

 

三、OpenCV工程建立

一、 選擇test.ui -> 打開方式 -> Qt Designer -> 肯定ui

 

二、 拉一個OPenGL控件到窗體上this

 

三、 改控件名字爲mat->在對象查看器中選中控件——>右鍵選擇提高爲...url

 

四、 提高的類名稱:MatView -> 點擊添加 ->提高 -> ctrl + F 保存界面 ,以下圖

 

五、 Header Files右鍵 -> 類導向 -> 添加類 -> 類命:MatView -> 完成 -> 確認,以下圖

六、點擊添加類

 

 七、點擊應用並肯定

 

八、 MatView.h代碼

#pragma once
//導入相應的庫
#include <QOpenGLWidget>
//繼承QOpenGLWidget
class MatView :public QOpenGLWidget
{
   Q_OBJECT
public:
//構造函數
   MatView(QWidget *p);
   ~MatView();
   //重載一個函數
   void paintEvent(QPaintEvent *e);
};

 

 

 

九、 MatView.cpp代碼

 
#include "MatView.h"
#include<opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <QImage>
#include <QPainter>
using namespace cv;
//重載一個函數,只要窗口發生變化他都會調用,這個函數不能處理業務邏輯,只作處理圖像
void MatView::paintEvent(QPaintEvent *e) {
	    Mat src = imread("D://1.jpg");
	    QImage img(src.data, src.cols, src.rows, QImage::Format_RGB888);
	    QPainter painter;
	    painter.begin(this);
	    painter.drawImage(QPoint(0, 0), img);
	
}
//構造函數,調用父類的,由於父類還有處理在裏面,因此要調用它
MatView::MatView(QWidget *p) :QOpenGLWidget(p)
{
}
MatView::~MatView()
{
}

  

 

 

 

十、 main.cpp代碼不用改動

 

 

十一、 導入OpenCV庫,參照windows基於vs2017的opencv安裝

十二、 運行代碼

代碼不重要,重要是如何配置,直接運行代碼,可能由於系統+環境不一樣出錯

1三、 效果圖

 

參考資料:

11.VS2015+OpenCV3.2+QT軟件/插件(QT篇1) --- OpenCV從零開始到圖像(人臉 + 物體)識別系列

OpenCV實例精解

相關文章
相關標籤/搜索