🌕下载

https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/

在这里插入图片描述

选择中间的.exe版下载

🌕安装

打开安装包,选择合适的位置安装,然后下一步即可,如果卡到百分之50,则取消安装,重启电脑,断开网络再次安装

🌕配置清华源

安装好之后打开它,然后配置清华源

sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*

🌕安装依赖

pacman -Syu

一路选择y,然后它会自动关闭。重新打开msys2

pacman -Su
pacman -S --needed base-devel mingw-w64-x86_64-toolchain

剩下的查看这篇博客即可:
Windows下使用Msys2(MinGW环境)直接安装预编译的OpenCV

🌕报错及解决方法

在这里插入图片描述

显示无法解析该文件所在的host:reop.msys2.org 这个网站。通过科学上网可以解决。

🌕验证是否安装成功

搜索mingw64
在这里插入图片描述

打开它输入:

pkg-config --cflags opencv
pkg-config --cflags opencv4

在这里插入图片描述
装的是目前最新版的4.10.0 opencv,应该能找到opencv4就算成功。

🌕通过编译c++代码测试是否安装成功

创建一个test.cpp文件,内容如下:

#include <opencv2/opencv.hpp> // 包含OpenCV的所有头文件  
#include <iostream>  
  
int main(int argc, char** argv)  
{  
    // 图片路径(已硬编码)  
    std::string imagePath = "1.png"; // 假设1.png与可执行文件在同一目录下  
  
    // 读取图片  
    cv::Mat image = cv::imread(imagePath, cv::IMREAD_COLOR); // 读取彩色图片  
  
    // 检查图片是否成功加载  
    if (image.empty()) // 如果图片为空  
    {  
        std::cout << "Could not open or find the image: " << imagePath << "!" << std::endl;  
        return -1;  
    }  
  
    // 获取图片的原始尺寸  
    int originalHeight = image.rows;  
    int originalWidth = image.cols;  
  
    // 设置新的高度  
    int newHeight = 640;  
  
    // 计算新的宽度,保持宽高比  
    int newWidth = static_cast<int>(static_cast<double>(originalWidth) / originalHeight * newHeight);  
  
    // 调整图片大小  
    cv::Mat resizedImage;  
    cv::resize(image, resizedImage, cv::Size(newWidth, newHeight));  
  
    // 创建一个窗口来显示图片,并设置窗口大小  
    cv::namedWindow("Display window", cv::WINDOW_NORMAL); // 使用WINDOW_NORMAL允许窗口大小调整  
  
    // 显示调整大小后的图片  
    cv::imshow("Display window", resizedImage); // 在窗口中显示图片  
  
    // 等待按键按下,直到按下'Esc'键(ASCII码为27)  
    while (true)  
    {  
        int key = cv::waitKey(100); // 等待100毫秒,检查是否有按键按下  
        if (key == 27) // 如果按下'Esc'键  
        {  
            break; // 跳出循环,关闭窗口并结束程序  
        }  
    }  
  
    // 注意:cv::waitKey(0)在这里不再需要,因为我们已经在循环中处理了按键事件  
  
    return 0;  
}

在相同目录下放一张图片,命名为1.png

🌙编译它

在打开的mingw64界面中,进入test.cpp所在的目录,输入:

g++ test.cpp -o test_opencv `pkg-config --cflags --libs opencv4`

在这里插入图片描述

没报错,说明编译成功。

🌙运行编译后的代码文件

在这里插入图片描述

报错,显示没有Qt6Gui.dll

输入命令安装它:

 pacman -S mingw-w64-x86_64-qt6

安装成功之后,重新编译c++测试文件:

g++ test.cpp -o test_opencv `pkg-config --cflags --libs opencv4`
./test_opencv.exe

在这里插入图片描述

成功!!!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐