windows下OpenCV开发环境的搭建(最简单)

为什么是做简单

基于msys2,是用mingw-gcc编译。
opencv用包管理器自动下载,无需手动配置。

步骤

下载安装msys2

https://www.msys2.org/
从官网下载msys2并安装

安装gcc,OpenCV

打开image

pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-opencv mingw-w64-x86_64-pkg-config mingw-w64-x86_64-qt5-base  mingw-w64-x86_64-icu

这里还有坑点的,不仅要装编译器和opencv,后面那些也要装。

编译测试

新建main.cpp

  • 示例程序来自https://blog.csdn.net/weixin_43863869/article/details/127952369
# include<opencv2/opencv.hpp>
# include<cstdio>
using namespace cv;
using namespace std;

int main(int argc, char *argv[]){
    // 打开摄像头
    VideoCapture cam(0);
    if (!cam.isOpened()){
        cout << "cam open failed!" << endl;
        getchar();
        return -1;
    }

    cout << "cam open success!" << endl;
    namedWindow("cam");
    Mat img;

    for(;;){
        cam.read(img); // 读帧
        if (img.empty()) break;
        imshow("cam", img); // 显示每一帧

        if (waitKey(5) == 'q') break; // 键入q停止
    }

    return 0;
}

编译

g++ main.cpp `pkg-config --libs --cflags opencv4`

CMake支持

# cmake版本最低要求
cmake_minimum_required(VERSION 3.8)
# 工程名,会产生"${PROJECT_NAME}"变量
project(OpenCV_Test)
# set用来定义变量,变量使用时用"${变量名}"的形式
set(CMAKE_CXX_STANDARD 11)

# 用find_package寻找OpenCV,找到后会有"${OpenCV_INCLUDE_DIRS}","${OpenCV_LIBRARIES}"两个变量可供使用,第一个是头文件位置,第二个是库文件
find_package(OpenCV REQUIRED)

# message用来打印信息,这里打印下找到的OpenCV的头文件和库文件的信息,可以不做
message(STATUS "OpenCV Include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV Libs: ${OpenCV_LIBRARIES}")

# 找到在当前目录下的所有代码文件,存储到"SOURCE_FILES"变量中
aux_source_directory(. SOURCE_FILES)
# 打印下刚才的"SOURCE_FILES",同样可不做
message(STATUS "src: ${SOURCE_FILES}")

# 定义需要include的头文件的位置
include_directories(${OpenCV_INCLUDE_DIRS})

# 添加个可执行的输出,第一个参数是输出名,必须唯一,第二个源文件
add_executable(${PROJECT_NAME} ${SOURCE_FILES})

# 用来链接库,注意这个函数要在"add_executable"之后使用
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
posted @   传说哥  阅读(866)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示