您的位置:首页 > 运维架构

Windows 正确安装OpenCV及使用(CMake+VS2015)

2017-02-19 14:20 495 查看

环境

Windows 10 家庭中文版
OpenCV 2.4.13
CMake 3.7.2
Visual Studio 2015 update 3


OpenCV 3.0+
VS 2017
同理。

使用exe安装的问题

Windows上
安装
OpenCV
后,如果是直接使用
Visual Studio
来创建工程的话,每次都要配置头文件和库文件,非常麻烦

由于官方使用的编译器版本和个人使用的编译器版本不一致造成的动态库的缺少(
MSVCP120.dll、MSVCP120d.dll、MSCVR120d.dll
…等)

使用
CMake
找不到
OpenCV


不能很方便的学习
OpenCV
的源代码

解决

OpenCV
是一个使用
CMake
(CMake是一个自动化构建工具,具体的可以去官网查看)构建项目的开源项目,可以和方便的使用
CMake
进行编译安装,可以解决上面的所有问题。

使用CMake生成OpenCV的工程

打开cmd并进入到OpenCV安装目录下的源代码目录下,执行以下命令:

mkdir build
cmake .. -DCMAKE_INSTALL_PREFIX=D:/opencv


这样
CMake
就生成了
Visual Studio
的工程,上面的命令中的路径是编译后的安装位置,本次教程里只是生成了
x86
也就是32位下使用的库文件(X64同理)。

使用Visual Studio2015编译安装OpenCV

这一步也可以直接用命令行进行,不过这样更直观

进入上面的
build
的目录,找到
OpenCV.sln
,打开,接下来分别编译生成并安装
Release
Debug
使用的库文件:

生成Debug版的Win32库文件并安装



找到ALL_BUILD项目



右键build



如果编译后没有错误(报ALL_BUILD不能运行那个不算),就可以安装了,



然后就可以在上一步指定的目录中找到安装的OpenCV了。

生成Release版本的Win32库文件



接下来的和上面一样。

最终的安装路径中的文件应该为



检查下x86下的库文件,
x86/vc14/lib
x86/vc14/bin
中均有Debug(结尾有d的库文件)和Release的库文件。

环境变量

将OpenCV安装目录的根目录和bin目录包含到环境变量中就可以了。

测试是否成功

新建一个CMake工程

/-testcv
|- src
|   |- main.cpp
|
|- CMakeLists.txt
/


main.cpp代码

#include <iostream>
#include <opencv2\opencv.hpp>

int main(int argc, char *argv[])
{
cv::Mat frame;
cv::VideoCapture camera(0);

while(1)
{
camera >> frame;
cv::imshow("camera", frame);

cv::waitKey(30);
}

return 0;
}


CMakeLists.txt代码(提供的这个通用模板已经可以满足日常小项目了)

cmake_minimum_required(VERSION 3.0)

set(PROJECT_NAME testcv)
project(${PROJECT_NAME})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)

file(GLOB_RECURSE HEADERS *.h)
source_group("Header Files" FILES ${HEADERS})
aux_source_directory(src DIR_SRCS)

find_package(OpenCV REQUIRED)
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} ${DIR_SRCS} ${HEADERS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
endif()


打开命令行,进入test目录:

mkdir build
cd build
cmake ..


进入build目录,打开testcv.sln,查看一下配置中的库文件和头文件都没有问题

Debug



Release



然后设置testcv为启动项,编译运行,可以打开摄像头并看到录像。OK

总结

使用CMake来管理需要大量配置库和头文件的项目,非常方便。

OpenCV使用官方的exe文件安装后可用,但有可能遇到编译器版本造成的库版本不一致的问题。

如果需要生成x64的库,在第一步的时候,指定生成x64就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv cmake visual studio