admin管理员组

文章数量:1564175

最近在研究opencv,刚好opencv4发布和QT5.12发布,两者都是稳定版本,网上有很多其他版本介绍,以为很简单,结果还是费了不少功夫。

1. 下载OPECV4.0

直接到官网https://opencv/下载

2.VS2015

社区版(个人免费):
http://download.microsoft/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015_chs.iso
专业版:
http://download.microsoft/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso
企业版:
http://download.microsoft/download/B/8/F/B8F1470D-2396-4E7A-83F5-AC09154EB925/vs2015.ent_chs.iso
测试专业版:
http://download.microsoft/download/0/9/5/095317BD-41B4-4D71-AAE8-C2D1D1033B92/vs2015.testpro_chs.iso

Visual Studio Professional 2015
Key: HMGNV-WCYXV-X7G9W-YCX63-B98R2
Visual Studio Enterprise 2015
Key: HM6NR-QXX7C-DFW2Y-8B82K-WTYJV
Visual Studio Enterprise 2015
Key: 2XNFG-KFHR8-QV3CP-3W6HT-683CH

3. opencv4整理剔除不必要的文件---!!!取vc15目录下对应的文件,因为QT5.12/OPENCV4,均使用的VS2017的编译的。

4. 下载QT5.12及配置

1)官网下载QT5.12

2) 新建一个QT工程,在*.Pro中增加如下配置

INCLUDEPATH += D:\OpenCV\opencv4_cfg
DEPENDPATH  += D:\OpenCV\opencv4_cfg

win32:CONFIG(debug, debug|release): {

    LIBS += -LD:\OpenCV\opencv4_cfg -lopencv_world400d

}
else:win32:CONFIG(release, debug|release): {
    LIBS += -LD:\OpenCV\opencv4_cfg -lopencv_world400
}

 

5.解决rc.exe缺失链接问题

安装完成之后,新建了一个QT界面程序,编译之后出现链接错误:

LINK : fatal error LNK1158: 无法运行“rc.exe”
1
解决方案:
把C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86这个文件夹下面的 rc.exe和rcdll.dll复制到
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin这个文件夹下面

然后在重新编译运行就可以了!
6. 测试验证:

创建一个qt X64程序。

1)pro中增加

INCLUDEPATH += D:\OpenCV\opencv4_cfg
DEPENDPATH  += D:\OpenCV\opencv4_cfg

win32:CONFIG(debug, debug|release): {

    LIBS += -LD:\OpenCV\opencv4_cfg -lopencv_world400d

}
else:win32:CONFIG(release, debug|release): {
    LIBS += -LD:\OpenCV\opencv4_cfg -lopencv_world400
}

2.增加一段代码:

#include "mainwindow.h"
#include <QApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MainWindow w;
  w.show();
  Mat image=imread("E:\\opencv\\images\\rice.png");
  namedWindow("My");
  imshow("My",image);
  VideoCapture cap("E:\\opencv\\images\\video.long.mjpg.avi");
  if(!cap.isOpened())
  {
      return -1;
  }
  Mat frame;
  while(1)
  {
      cap>>frame;
      if(frame.empty()) break;
      imshow("当前视频",frame);
      if(waitKey(30) >=0)
          break;
  }
  return a.exec();
}
运行效果:图像和视频

 

本文标签: