Sublime Text 3 编译运行 OpenCV2.4.13

本文介绍如何使用MinGW和CMake成功编译OpenCV源码,包括安装mingw-w64、配置环境变量、下载OpenCV及CMake、配置CMake参数以及在命令行中编译的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提

  • MinGW
  • CMake3.7.1
  • OpenCV2.4.13
  • Sublime Text 3

碰到一些问题

我用 MinGW 和 CMake 没有成功编译OpenCV源码,但用 mingw-w64 和 CMake 成功编译了 OpenCV 源码。能力有限,并不清楚具体怎么解决。

安装mingw-w64

首先安装mingw-w64(我下载的是6.2.0,其他版本并未试过能否成功),下载 mingw-w64;下载完成,解压文件并重命名为MinGW,然后配置环境变量,方法与配置MinGW的方法一样。
例如我的环境变量是

C_INCLUDE_PATH  C:\MinGW\include
LIBRARY_PATH    C:\MinGW\lib
Path            C:\MinGW\bin

如果原本装有MinGW那就可以直接用mingw-w64替换。他们2个的功能都是一样的。
注意:需要重启电脑刷新环境变量,也可以自行百度不重启刷新环境变量的方法。
然后在命令行输入gcc --version,以确定环境变量是否可用
如图,则配置成功。
用gcc判断


下载OpenCV

我下载的OpenCV版本是2.4.13,访问官网 http://opencv.org/ 自行下载。虽然下载的是exe文件,其实只做了解压工作,解压到目标文件夹。子目录应该有 build 和 sources 2个文件夹。


下载和安装CMake

我下载的CMake版本是3.7.1,访问官网 https://cmake.org/ 自行下载,下载并安装。


编译OpenCV源码

运行CMake,source code 选 解压文件下的sources文件夹,输出到 build/x64/mingw 这是我们以后要用的文件夹。
CMake
我因为之前编译过,所以会有红色的这部分。
点 Configure
Cmake configure
next
gcc 选 MinGW/bin/x86_64-w64-mingw32-gcc.exe
g++ 选 MinGW/bin/x86_64-w64-mingw32-g++.exe
Cmake configure
完成后,再次点击configure。

需要耐心等进度条完成。完成后 我的输出框里 有CPACK_PACKAGE_VERSION does not match version provided by version.hpp 的提示,但发现这个问题不大。

然后点Generate生成,等待完成。

然后使用命令行进入输出文件夹 build/x64/mingw 下输入 mingw32-make 运行
然后就进入漫长的等待,我的电脑大概用了近一个小时(电脑太差了!)
cmd
等待完成。根据你自己的路径,将 C:\opencv\build\x64\mingw\bin 加入 Path 加入环境变量。
在sublime text 3 中 新建编译环境OpenCV.sublime-build

{
            "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}",
            "-I", "C:/opencv/build/include",
            "-I", "C:/opencv/build/include/opencv",
            "-I", "C:/opencv/build/include/opencv2",
            "-L", "C:/opencv/build/x64/mingw/lib",

            "-l", "opencv_core2413", "-l", "opencv_imgproc2413", "-l", "opencv_calib3d2413","-l","opencv_objdetect2413",
            "-l", "opencv_video2413", "-l", "opencv_features2d2413", "-l", "opencv_ml2413", "-l", "opencv_highgui2413",
            "-l",  "opencv_legacy2413" ],

            "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
            "working_dir": "${file_path}",
            "selector": "source.c, source.c++, source.cpp",
            "encoding": "gbk",
            "variants":
            [
            {
            "name": "Run",
            "cmd" : ["${file_path}/${file_base_name}"]
            }
            ]
      }

新建opencv程序测试

测试程序 test.cpp ,读取并显示图片。

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
    const char* imagename = "d:/a1.jpg";

    //从文件中读入图像
    Mat img = imread(imagename);

    //如果读入图像失败
    if(img.empty())
    {
        fprintf(stderr, "Can not load image %s\n", imagename);
        return -1;
    }

    //显示图像
    imshow("image", img);

    //此函数等待按键,按键盘任意键就返回
    waitKey();

    return 0;
}

效果如下:
测试效果

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值