OpenCV Clion编译器与环境配置- 详细(windows)
1. 前言鉴于VS本身体积的庞大和项目依赖管理方式的不便,所以本文采用Clion通过CMake进行项目结构管理,系统环境选择配置较为复杂的windows10 Pro,Linux同理。ubuntu 编译opencv3.4.7参考https://blog.csdn.net/u013066730/article/details/794117672. 准备工作Windows (本文...
1. 前言
鉴于VS本身体积的庞大和项目依赖管理方式的不便,所以本文采用Clion通过CMake进行项目结构管理,系统环境选择配置较为复杂的windows10 Pro,Linux同理。
ubuntu 编译opencv3.4.7参考https://blog.csdn.net/u013066730/article/details/79411767
2. 准备工作
- Windows (本文环境为 win10 x64)
- Clion 下载:https://www.jetbrains.com/clion/, 使用学生免费版或者TB购买全家桶激活码,包括Pycharm for PYTHON
- MinGW(本文环境 tdm-gcc-8.1.0)
- CMake (本文环境 cmake-3.9.4)
- OpenCV(本文环境 opencv-3.4.5)
查看gcc 版本,使用windows powershell: gcc -v
安装以上工具后,基本都是一路 next ,最后做一下系统环境变量的配置(右击我点电脑->属性->高级系统设置->环境变量->系统变量->编辑Path,添加对应软件bin所在目录,中间分号分隔)。最后打开Clion,依次进入Setting->Build,Execution,Deployment->Toolchains,设置编译用工具链:
ps:编译好的OpenCV MSVC版及 MinGW版
-
MSVC版
下载的 OpenCV 文件夹会有:
- build (已编译好的库)
- sources (源码)
使用 MSVC 的话,直接在
build/x64/vc14
里面就有了,配置好路径即可使用
- MinGW版
OpenCV 没有为我们编译好 MinGW 版,所以只能用户自行编译,下面就是介绍 MinGW 版的编译流程以及中间可能遇到的错误的排除
这里有需要的话可以直接下载使用我编译好了的 OpenCV-3.4.1 x64
3. 编译
- 解压OpenCV,然后在解压后source同级目录下创建一个新的mingw-build文件夹用于存放编译后的内容。
(ps:这里如果你之前安装了Anaconda或者Python,请把这两个软件暂时从环境变量中删除,只是删除系统Path中的存在即可,不是卸载软件。原因是后面编译会有冲突)
- 然后这里选择用cmake图形化界面操作,Cmake GUI如图所示,比较直观一些,采用命令行注意下命令参数同理。
- source和binary目录按如下图选择:
此处需要复制opencv->build->bin下的两个文件:opencv_ffmpegxxx.dll、opencv_ffmpegxxx_64.dll
到 ../opencv/sources/3rdparty/ffmpeg/目录下
其中:source目录对应你的opencv/sources目录,binary目录就是之前新建的那个mingw-build存放目录
选好目录,点击configure选择选择MinGW Makefiles,如图所示。
参考:https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/
注意:遇见界面条款变红色之后再次点击Configure(等于是要点两次),等到所有列表变白,没有红色一片的时候才表示成功
- configure成功后点击generate
- 进入刚才创建的mingw-build目录,直接右键Git bash here,如图(如果没装git windows 可以先安装记得勾选 git bash ,亦或者在cmd下进行)
- 然后在上图的界面中使用make命令进行编译:
mingw32-make -j4 # 以4线程进行编译,这个数字根据自己硬件合理选择
然后就可以火力全开编译了:
这里容易报编译错误,参考:https://blog.csdn.net/weixin_42005205/article/details/81000017,
https://blog.csdn.net/sinat_36264666/article/details/73200739, 来解决对应问题。
- 漫长的make到达100%后进行install:
mingw32-make install
- 添加环境变量
- 为系统变量 Path 添加
- 添加 OpenCV_DIR (注意大小写,部分情况这个可以不加,不过我这里不加Cmake会报找不到OpenCV的错误),变量值为之前编译的build路径:C:opencvmingw-build (实质是告知Cmake 包含OpenCV库文件和include文件配置文件的OpenCVConfig.cmake所在)
4. 调用
至此,OpenCV编译和相关设置已经完成,只需要正常调用即可使用。下面给一个简单摄像头调用示例:
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(detect)
set(CMAKE_CXX_STANDARD 11)
add_executable(detect main.cpp)
FIND_PACKAGE(OpenCV REQUIRED)
IF (OpenCV_FOUND)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(detect ${OpenCV_LIBS})
ELSE (OpenCV_FOUND)
MESSAGE(FATAL_ERROR "OpenCV library not found")
ENDIF (OpenCV_FOUND)
main.cpp
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>
int main() {
cv::VideoCapture capture(0);
if (!capture.isOpened()) {
std::cout << "open camera error!" << std::endl;
return -1;
}
cv::Mat frame;
while (1) {
capture >> frame;
if (frame.empty()) {
std::cout << "capture empty frame" << std::endl;
continue;
}
cv::Mat shrink_frame;
cv::resize(frame, shrink_frame,
cv::Size(frame.cols / 2, frame.rows / 2),
0, 0, 3);
cv::imshow("detect", shrink_frame);
int key = cv::waitKey(1);
if (key == 'q') {
break;
}
}
return 0;
}
更多推荐
所有评论(0)