一、文件下载
1、下载opencv
最好去官网下载,也可以去我的GitHub下载,GitHub上是我编译好的安装文件与OpenCV源文件。
opencv官网:opencv.org/
GitHub:点击打开链接
2、下载编译工具
a.mingw
根据自己电脑字长下载,64Bit也可以下载32bit,这里我使用的是32bit的mingw,由于mingw官网速度很慢,所以我将 32bit的文件打包放到了百度云。
b.cmake
主要用来编译OpenCV,生成库文件。这里我也将其打包放到百度云。
注意:CLion最高支持cmake9.x的
百度云:点击打开链接
c.CLion CLion
可以到jetbrian官网下载,这个貌似网站没有被墙,而且可以凭学生信息激活。
接下来就可以开始编译OpenCV了,如果是从我的GitHub上下载的就跳过这一步,因为项目里面已经包含了源文件及编译好的库文件。
二、编译OpenCV
1、找到cmake的根目录/bin,打开cmake-gui.exe,如下图所示:
如上图所示,在第一行填入openCV源文件路径,第二行填入输出文件的保存路径,最下面一个current generator选择mingw,注意所有路径都不能包含中文字符。 然后点击configure就可以编译源文件了,刚开始的红字可以不用理它.
编译过程中会有找不到的文件路径,只要根据电脑的路径重新配置一下就好了,可以参考文末的参考文献,然后点击generate修复。
2、安装编译文件
在编译输出根目录打开cmd或powershell,输入`mingw32-make`,然后开始生成库文件。
编译过程中会出现错误,不用着急,可查看本文最后的参考目录。一般也就两三个问题。 编译完成后在原来的命令窗口输入
`mingw32-make install` ,这个命令会生成一个install文件夹,里面就是我们所需要的东西。
最后将输出文件根目录\install\x86\mingw\bin添加到环境变量
三、安装CLion
博主下载的CLion是专业版,用学校邮箱激活的。下面请看CLion的安装及配置
安装过程很简单,只要在配置编译工具那里配置一下mingw,cmake以及gdb就行了,GDB我选的是CLion自带的,所以不用下载GDB。
上图是已经安装好的CLion,安装过程中的配置和上图一样,完成之后就可以seetings>Build,Execution,Deployment>toolchains看到配置信息。 写一个hello world测试一下
四、test
这里不要写hello world喽。
CMakeLists.txt配置如下
cmake_minimum_required(VERSION 3.9)
project(OpenCV)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(OpenCV ${SOURCE_FILES})
#Where to find CMake modules and OpenCV
include_directories("D:\\\\Program Files\\\\opencv\\\\mingw-build\\\\install\\\\include")
#add libs you need
set(TARGET_LIBS
"D:\\\\Program Files\\\\opencv\\\\mingw-build\\\\install\\\\x86\\\\mingw\\\\lib\\\\libopencv_core320.dll.a"
"D:\\\\Program Files\\\\opencv\\\\mingw-build\\\\install\\\\x86\\\\mingw\\\\lib\\\\libopencv_highgui320.dll.a"
"D:\\\\Program Files\\\\opencv\\\\mingw-build\\\\install\\\\x86\\\\mingw\\\\lib\\\\libopencv_imgproc320.dll.a"
"D:\\\\Program Files\\\\opencv\\\\mingw-build\\\\install\\\\x86\\\\mingw\\\\lib\\\\libopencv_imgcodecs320.dll.a")
# linking
target_link_libraries(OpenCV ${TARGET_LIBS})
根据个人实际情况作参考。
下面写一个程序来测试程序
main.cpp
#include "iostream"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main() {
Mat img=imread("zophie.jpg");
if (img.empty()) {
cout << "Error" << endl;
return -1;
}
imshow("zophie.jpg", img);
waitKey(2000);
return 0;
}
简单的读取和输出图像,要把使用的图像放到main.cpp所在的路径,也要复制到生成的cmake-build-debug文件夹里。 运行一下
可爱的猫咪就出来了。
参考文献