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

环境

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

注:OpenCV 3+VS 2017同理,新教程Windows编译安装OpenCV 3.4.3(CMake + VS2017)。

使用exe安装的问题

  • Windows上安装OpenCV后,如果是直接使用Visual Studio来创建工程的话,每次都要配置头文件和库文件,非常麻烦
  • 由于官方使用的编译器版本和个人使用的编译器版本不一致造成的动态库的缺少(MSVCP120.dll、MSVCP120d.dll、MSCVR120d.dll…等)
  • 使用CMake找不到OpenCV
  • 不能很方便的学习OpenCV的源代码

解决

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

使用CMake生成OpenCV的32位工程

打开cmd并进入到OpenCV解压的根目录下,执行以下命令:

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

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

使用Visual Studio2015编译安装OpenCV

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

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

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

这里写图片描述
找到ALL_BUILD项目
Windows 正确安装OpenCV及使用(CMake+VS2015)_第1张图片
右键build
Windows 正确安装OpenCV及使用(CMake+VS2015)_第2张图片
如果编译后没有错误(报ALL_BUILD不能运行那个不算),就可以安装了,
Windows 正确安装OpenCV及使用(CMake+VS2015)_第3张图片

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

生成Release版本的Win32库文件

这里写图片描述
接下来的和上面一样。
最终的安装路径中的文件应该为
Windows 正确安装OpenCV及使用(CMake+VS2015)_第4张图片
检查下x86下的库文件,x86/vc14/libx86/vc14/bin中均有Debug(结尾有d的库文件)和Release的库文件。

环境变量

将OpenCV安装目录的根目录和bin目录包含到环境变量中(登出一下)。

测试是否成功

新建一个CMake工程

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

main.cpp代码

#include 
#include 

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
Windows 正确安装OpenCV及使用(CMake+VS2015)_第5张图片

Release
Windows 正确安装OpenCV及使用(CMake+VS2015)_第6张图片

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

生成64位库

查看电脑支持的Generators

cmake -h

找到Generators,
Windows 正确安装OpenCV及使用(CMake+VS2015)_第7张图片
例如生成VS2015的64位工程的命令为

cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=D:/opencv ..

接下来的步骤和上述生成32位的库一致。

总结

  1. 使用CMake来管理需要大量配置库和头文件的项目,非常方便。
  2. OpenCV使用官方的exe文件安装后可用,但有可能遇到编译器版本造成的库版本不一致的问题。
  3. 如果需要生成x64的库,在第一步的时候,指定生成x64就可以。

你可能感兴趣的:(opencv,C++)