OpenCV在Windows环境下MinGW-W64编译方法

OpenCV是一个很实用的图像处理代码库。但是其官方不提供MinGW版的库文件,需要自己编译。网上有很多教程但大多数都有问题。所以把自己试过的没有问题的方法和步骤记录下来。

首先下载OpenCV,在官方网站上下载。点击最新版本下的Win pack即可。下载下来的文件一般为.exe文件。

双击此文件,选择解压路径。解压出来的文件即为OpenCV软件库。推荐解压位置为 C:/opencv3.4/

可以在路径 C:/opencv3.4/build/x64 下发现其没有MinGW版本的库文件,这需要我们自己编译。下载MinGW-w64与CMake。下载和安装方法自行百度。

下载并安装好之后,首先确认是否将可执行文件夹(就是文件夹bin)路径加入到了用户环境变量PATH中。特别注意,如果你电脑中安装有Python,请一定确定你安装的版本为Python3,若不是请安装。

运行CMake,source code 路径填 C:/opencv3.4/sources,另外在路径 C:/opencv3.4/ 下新建一个文件夹 build-ming64作为MinGW版本的库文件存放地。build the binaries 路径填刚刚新建的文件夹的路径 C:/opencv3.4/build-mingw64。

点击下方的Configure,选择 MinGW makefiles 及 Specify native compilers,然后编译C文件的路径填 MinGW-w64的安装路径+gcc.exe,如 C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin\gcc.exe,同理编译C++文件路径选 g++.exe。fortan那个不填。然后cmake 就会开始工作了。Configure完事之后需要再点一下Generate。

打开CMD,输入 cd C:\opencv3.4\build-mingw64 转换目录,然后输入 minGW32-make 生成文件。这个时候可能会花费较多的时间来编译。在完成之后,输入 minGW32-make install 来完成装载。

完成这一步之后就大功告成了。以下是sublime端的配置文件:

{
"cmd": ["g++", "${file}", "-o",
"${file_path}/${file_base_name}",
"-I", "C:/opencv3.4/build/include",
"-I", "C:/opencv3.4/build/include/opencv",
"-I", "C:/opencv3.4/build/include/opencv2",
"-L", "C:/opencv3.4/build-mingw64/lib",
"-l", "opencv_core341",
"-l", "libopencv_imgproc341",
"-l", "libopencv_video341",
"-l", "libopencv_ml341",
"-l", "libopencv_highgui341",
"-l", "libopencv_objdetect341",
"-l", "libopencv_flann341",
"-l", "libopencv_imgcodecs341",
"-l", "libopencv_photo341",
"-l", "libopencv_videoio341"],


"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}"]
}
]

}

现在可以输入以下代码测试:

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"


int main() {
//Read Original Image and switch it to the gray.
cv::Mat srcImage = cv::imread("sample.png");
//Does the reading process goes wrong?
if (!srcImage.data) {
return 1;
}
//show the image
cv::imshow("srcImage", srcImage);
//wait for the key press
cvWaitKey(0);
return 0;

}

在生成了.exe文件后,双击它有时候会提示缺少各种.dll文件,其存储在 C:\opencv3.4\build-mingw64\bin 中,将其拷贝到 .exe文件相同目录下就好了。

你可能感兴趣的:(OpenCV)