Sublime Text 3 編譯運行 OpenCV2.4.13

前提

  • 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;
}

效果如下:
測試效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章