openCV4.5.4+QT5.14.2+Linux5.4部署--windows下的基础实现

目标:

基于forlinx t113-i核心板,研发一款物体正反与旋转角度识别


源码:

OpenCV源码下载 : https://github.com/opencv/opencv.git

opencv_contrib源码下载:https://github.com/opencv/opencv_contrib.git

安装zlib:GitHub - madler/zlib: A massively spiffy yet delicately unobtrusive compression library.
安装Cmake:CMake - Upgrade Your Software Build System

Index of /files
Qt 5.14.2,下载地址:https://download.qt.io/archive/qt/5.14/5.14.2/


编译/安装:

切换openCV和openCV_contrib的版本为tag4.5.4搭配

因为QT5.14.2的部分库内容和C++支持的版本都不高,比较合适的版本为4.5.4,我也试过编译4.10.0版本的openCV,会出现如下报错:

E:/opencv/opencv-4.10.0/3rdparty/protobuf/src/google/protobuf/stubs/mutex.h:124:29: error: temporary of non-literal type 'google::protobuf::internal::CallOnceInitializedMutex<std::mutex>' in a constant expression
  constexpr WrappedMutex() {}

所以如题,三者的版本保持这样的对应关系

环境变量的设置

设置源码目录和编译目录后,点击configure,设置c++和c的编译器(注意是32位还是64位,之后保持统一)

根据需求选择模组开关


build_opencv_world  设置为true
CMAKE_CXX_FLAG 设置为 -fpermissive -Wno-psabi -pthread -lrt -ldl
CMAKE_EXE_LINK_FLAGS 设置为 -lstdc++ -pthread -lrt -ldl -lm
CMAKE_BUILD_TYPE 设置为 release

点击Configure和Generate

构建与安装

mingw32-make VERBOSE=1 -j

mingw32-make VERBOSE=1 install -j

设置openCV的环境变量


demo程序测试:

在*.pro中添加
 


INCLUDEPATH += \
        C:\devbin\opencv\opencv-4.5.4-build\install\include \
        C:\devbin\opencv\opencv-4.5.4-build\install\include\opencv2

LIBS += \
        C:\devbin\opencv\opencv-4.5.4-build\install\x64\mingw\lib\libopencv_*.a

在main.cpp中输入测试用的代码

#include "mainwindow.h"

#include <QApplication>

#include <iostream>

#include <opencv.hpp>

using namespace cv;

using namespace std;

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    cv::namedWindow("image", cv::WINDOW_AUTOSIZE);
    cv::Mat mt = cv::imread("D:\\About_Learn\\02_Project\\07_Qt_Project\\qtProj\\02_CoinVision\\Vision\\test.jpg", cv::IMREAD_COLOR);
    if (mt.empty()) {
        std::cerr << "Could not read the image: test.jpg" << std::endl;
        return 1; // 或者其他错误处理
    }
    cv::imshow("image", mt);
    cv::waitKey(0);

    MainWindow w;
    w.show();

    return a.exec();
}


 

至此,opencv的在win环境下的基础配置就已经完成。还是直接使用python快。

下一章,在ubuntu系统上安装编译opencv,并部署到嵌入式板子上(T113-i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值