博主只是针对自身配置出现问题进行记录,其他详细的配置,博主这里贴了链接,也可自行查找。
基于该文章移植
配置环境,软件安装
opencv-3.4.16-vc14_vc15
qt-opensource-windows-x86-5.11.1
cmake-3.23.0-windows-x86_64
opencv地址
qt地址
cmake地址
这里主要注意生成的路径,也就是cmake编译后的路径,因为后期要被qt调用,又因为qt对于路径极其严格,不能有中文,还不能有空格,博主这里的路径就有问题,导致mingw32-make install,报错说权限不足,使用管理员权限,可后编译后的目录没有install文件夹,后期qt引用头文件也找不到。
Install the project...
-- Install configuration: "Release"
CMake Error at cmake_install.cmake:41 (file):
file cannot create directory: C:/Program Files (x86)/etc/licenses. Maybe
need administrative privileges.
Makefile:128: recipe for target 'install' failed
mingw32-make: *** [install] Error 1
后来博主改了路径,安装也没有报错了,目录也生成了
cmake配置完,注意这个install目录,博主这之前不知道咋回事,install去c盘Program Files (x86)路径下去了。
Install to: D:/Program Files (x86)/opencv/opencvbuild/install
-----------------------------------------------------------------
Configuring done
Generating done
D:\Program Files (x86)\opencv\sources\modules\photo\test\test_hdr.cpp: In member function 'virtual void opencv_test::{anonymous}::Photo_AlignMTB_regression_Test::Body()':
D:\Program Files (x86)\opencv\sources\modules\photo\test\test_hdr.cpp:133:39: error: 'time' was not declared in this scope
srand(static_cast<unsigned>(time(0)));
^
modules\photo\CMakeFiles\opencv_test_photo.dir\build.make:165: recipe for target 'modules/photo/CMakeFiles/opencv_test_photo.dir/test/test_hdr.cpp.obj' failed
mingw32-make[2]: *** [modules/photo/CMakeFiles/opencv_test_photo.dir/test/test_hdr.cpp.obj] Error 1
CMakeFiles\Makefile2:2328: recipe for target 'modules/photo/CMakeFiles/opencv_test_photo.dir/all' failed
mingw32-make[1]: *** [modules/photo/CMakeFiles/opencv_test_photo.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....
错误解决
test_hdr.cpp文件在opencv源码目录
路径!路径!路径
INCLUDEPATH += D:\opencvbuild\install\include
LIBS += D:\opencvbuild\lib\libopencv_*.a
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
Mat image=imread("C:\\Users\\Flynnsin\\Desktop\\opencv_test.jpeg",1);
namedWindow("Display window", WINDOW_AUTOSIZE );
imshow("Display window", image );
}
MainWindow::~MainWindow()
{
delete ui;
}