《OpenCV图像处理》——1.2 下载和安装OpenCV

简介:

本节书摘来自华章计算机《OpenCV图像处理》一书中的第1章,第1.2节,作者:[西]葛罗瑞亚·布埃诺·加西亚(Gloria Bueno García)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 下载和安装OpenCV

http://opencv.org处可免费下载获得OpenCV,该网站提供了最新发布的版本(当前版本是3.0测试版)以及各种老版本。
请特别注意,下载时可能会出现错误,因为发布的还不是一个稳定的版本,例如,当前的3.0测试版。
在网址http://opencv.org/downloads.html可以找到适合各种平台的OpenCV版本。根据最终目的,可从不同资源存放点获取所需的库代码和库信息:
主资源库,用于最终用户。它包括库的二进制版本以及目标平台准备编译的源代码。
测试数据资源库,附带一些数据集,可用于测试某些库模块。
贡献资源库,包括了由各个贡献者提供的附加功能和最新功能相对应的源代码。与主干代码相比,这些代码测试较少且更容易出错。
对于最新版本(OpenCV 3.0测试版),在其主包中没有包括这些额外的贡献模块。它们需要单独下载,并通过正确的选项明确地包含在编译过程中。如果包含那些贡献模块,就要小心谨慎,因为它们中的一些所依赖的第三方软件可能不包含在OpenCV中。
每个模块的文档资料网站包括了上述贡献模块。
开发资源库具有库的当前开发版本。它适用于库的主要功能的开发人员以及希望在发布之前就使用最新更新功能的“心急”用户。
不同于GNU/Linux和OS X,OpenCV只是以源代码的形式发布,在Windows的发布版本中,可以找到该库的预编译版本(采用Microsoft Visual C++ v10、v11和v12)。每种预编译版本和Microsoft编译器一起使用。但是,如果主要目的是使用一种不同的编译框架开发项目,就需要特定的编译器(例如:GNU GCC)编译该库。
配合OpenCV工作的最快捷路径是使用包含在发布版本中的预编译版本之一。之后,一个更好的选择是使用用于软件开发的本地平台的最佳设置来建立库的一个精确调制版本。本章提供了在Windows上建立和安装OpenCV的信息。
1.2.1 获取编译器和设置CMake
对于使用OpenCV进行跨平台开发的一个好的选择是使用GNU工具包(包括gmake、g++和gdb)。对于大多数流行的操作系统,可以很容易获得GNU工具包。我们首选由GNU工具包和跨平台Qt框架构成一个开发环境,后者包括Qt库和Qt生成器(Qt Creator)的集成开发环境(Integrated Development Environment,IDE)。
在Windows上安装了编译器之后,记得正确设置Path环境变量,为编译器的可执行文件添加该路径,例如:对于包含在Qt框架中的GNU/编译器添加的路径是C:QtQt5.2.15.2.1mingw48_32bin。在Windows上,免费的快捷环境编辑器工具提供了一种便利方式来修改Path和其他环境变量。
若要以编译器无关方式管理OpenCV库的构建过程,CMake是推荐的工具。CMake是一款免费的开源跨平台工具。
1.2.2 使用CMake配置OpenCV
一旦库的源代码被下载到本地磁盘,就需要为库的编译过程配置生成文件(makef?ile)。要完成OpenCV安装过程的一个简单配置,CMake是关键工具。CMake可以使用命令行方式,或者用图形用户界面(GUI)版本以一种对用户更友好的方式使用。
使用CMake配置OpenCV的步骤总结如下:
1)选择源目录(在下面称它为OPENCV_SRC)和目标目录(OPENCV_BUILD)。已编译的二进制文件将被放置在目标目录中。
2)勾选Grouped(分组)及Advanced(高级)复选框,并单击Conf?igure(配置)按钮。
3)选择所需的编译器(例如,GNU默认的编译器、MSVC编译器等)
4)设置优先选项,并取消不期望的选项。
5)单击Conf?igure(配置)按钮,并重复第4)步和第5)步,直到没有错误出现。
6)单击Generate(生成)按钮,并关闭CMake。
图1-1展示了CMake主窗口,其中具有源目录、目标目录以及将所有可用选项分组的复选框。
screenshot

为了尽量简洁,在书中使用OPENCV_BUILD和OPENCV_SRC分别表示OpenCV本地设置的目标目录和源目录。务必记住,所有目录都应该与您当前的本地配置相匹配。
在预配置过程期间,CMake检测当前的编译器和许多其他本地属性来设置OpenCV的构建过程。图1-1显示了执行预配置过程之后的主CMake窗口,红色显示的是分组选项。
保留默认选项不变并继续配置过程是可能的。不过,可以设置某些便捷选项:
BUILD_EXAMPLES:这个选项设置使用OpenCV来构建某些示例。
BUILD_opencv_:这个选项设置在构建过程中包含的模块(module_name)。
OPENCV_EXTRA_MODULES_PATH:当需要某些额外的贡献模块时可使用这个选项;此处是为额外模块的源代码设置路径(例如,C:/opencv_contrib-master/modules)。
WITH_QT:启用这个选项,指明将Qt功能包含到库中。
WITH_IPP:在默认情况下,这个选项被启用。当前的OpenCV 3.0版本包含了Intel集成性能函数库(IPP)的一个子集,可加快库的执行时间。
如果编译新版本OpenCV 3.0(测试版),必须小心,因为当启用IPP时(即:这个选项的默认值)会出现某些意外错误。不推荐设置WITH_IPP选项。
如果CMake的配置步骤(通过循环执行第4)步和第5)步)没有产生任何进一步的错误,那么就可以为该构建过程生成最终的生成文件。图1-2展示了没有错误的生成步骤的CMake主窗口。
screenshot

1.2.3 库的编译和安装
在使用CMake配置生成文件的产生过程之后,下一步工作是采用恰当的make工具完成编译。该工具通常是在目标目录(在CMake配置步骤中设置)下使用命令行(操控台)执行。例如,在Windows中,编译应该用如下命令行启动:

该命令使用由CMake产生的生成文件启动一个构建过程,整个编译过程通常需要几分钟。如果编译结束且没有错误,安装过程将继续,并执行如下命令:

该命令将OpenCV的二进制文件复制到目录OPENCV_BUILDinstall。
如果在编译期间出现错误,应该再次运行CMake,并更改配置过程中选择的选项,然后重新产生生成文件。
最后,将库的二进制文件地址(例如,在Windows中,产生的DLL文件位于OPENCV_BUILDinstallx64mingwbin)添加到Path环境变量中,即可完成安装。如果在Path域中没有这个目录,那么当没有找到库的二进制文件时,每个OpenCV可执行文件的执行都将给出一个错误:“库的二进制文件未找到”。
为了检查安装过程是否成功,可以运行使用该库编译好的某些示例(如果在使用CMake时BUILD_EXAMPLES选项被设置)。可以在OPENCV_BUILDinstallx64mingwsamplescpp上找到这些代码示例(使用C++编写)。
上述简短指令给出了应用于Windows的OpenCV的安装。

相关文章
|
2月前
|
并行计算 PyTorch 算法框架/工具
anaconda+pytorch+opencv安装及环境配置
anaconda+pytorch+opencv安装及环境配置
140 0
|
4月前
|
openCL 开发工具 C语言
OpenCV 图像处理学习手册:6~7
OpenCV 图像处理学习手册:6~7
84 0
|
4月前
|
存储 编解码 算法
OpenCV 图像处理学习手册:1~5
OpenCV 图像处理学习手册:1~5
35 0
|
5月前
|
存储 计算机视觉 Python
搭建Python-OpenCV开发环境(包括Python、Pycharm、OpenCV下载 图文解释)
搭建Python-OpenCV开发环境(包括Python、Pycharm、OpenCV下载 图文解释)
55 0
|
3月前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
48 0
|
4天前
|
算法 计算机视觉
【OpenCV】计算机视觉图像处理基础知识(下)
【OpenCV】计算机视觉图像处理基础知识(下)
|
4天前
|
人工智能 计算机视觉 Python
【OpenCV】计算机视觉图像处理基础知识(上)
【OpenCV】计算机视觉图像处理基础知识(上)
|
12天前
|
算法 安全 机器人
最新版opencv4.9安装介绍,基本图像处理详解
最新版opencv4.9安装介绍,基本图像处理详解
|
14天前
|
开发工具 计算机视觉 C++
OpenCv、Vis Studio安装与配置
OpenCv、Vis Studio安装与配置
OpenCv、Vis Studio安装与配置
|
25天前
|
机器学习/深度学习 存储 算法
OpenCV与NumPy:图像处理中的黄金组合
【4月更文挑战第17天】OpenCV和NumPy是Python图像处理的两大利器,互补协作形成黄金组合。OpenCV专注计算机视觉,提供丰富算法,而NumPy擅长数值计算和数组操作。两者无缝对接,共同实现高效、灵活的图像处理任务。通过灰度化、二值化、边缘检测等案例,展示了它们的协同作用。未来,这一组合将在计算机视觉和机器学习领域发挥更大作用,解锁更多图像处理潜力。