分享

opencv-开源计算机视觉python库

 CNStudent 2021-01-03

OpenCV(开源计算机视觉库:opencv.org)是一个开放源代码库,其中包含数百种计算机视觉算法。该文档介绍了所谓的OpenCV 2.x API,与基于C的OpenCV 1.x API相比,它实际上是C ++ API(自OpenCV 2.4发行以来,C API已被弃用,并且未经“ C”编译器进行测试)。

模块

OpenCV具有模块化结构,这意味着该程序包包含多个共享库或静态库。提供以下模块:

  • 核心功能(core)-定义基本数据结构的紧凑模块,包括密集的多维数组Mat和所有其他模块使用的基本功能。

  • 图像处理(imgproc)-一种图像处理模块,包括线性和非线性图像过滤,几何图像转换(调整大小,仿射和透视变形,基于常规表的重新映射),颜色空间转换,直方图等。

  • 视频分析(video)-视频分析模块,包括运动估计,背景减法和对象跟踪算法。

  • 摄像机校准和3D重构(calib3d)-基本的多视图几何算法,单摄像机和立体摄像机校准,对象姿态估计,立体对应算法以及3D重构要素。

  • 2D要素框架(features2d)-显着特征检测器,描述符和描述符匹配器。

  • 对象检测(objdetect)-检测对象和预定义类的实例(例如,面孔,眼睛,杯子,人,汽车等)。

  • 高级GUI(highgui)-简单的UI功能的易于使用的界面。

  • 视频I / O(videoio)-用于视频捕获和视频编解码器的易于使用的界面。

  • ...其他一些帮助器模块,例如FLANN和Google测试包装器,Python绑定等。

安装

从源代码构建OpenCV

  • 下载并安装Visual Studio和CMake。

  • 将必要的Python软件包下载并安装到其默认位置

  • 确保Python和Numpy正常运行。

  • 通过网盘下载OpenCV源代码,或者也可以从Sourceforge(对于官方发行版)或来自Github(对于最新源)。

  • 将其解压缩到一个文件夹中,在opencv中创建一个新的文件夹。

  • 打开CMake-gui(开始>所有程序> CMake-gui)

  • 如下填写字段(请参见下图):


  • 您将看到所有字段都标记为红色。单击WITH字段将其展开。它决定了您需要哪些额外的功能。因此,请标记适当的字段。

  • 现在,单击“构建”字段以将其展开。前几个字段配置构建方法。

  • 其余字段指定要构建的模块。由于OpenCV-Python尚不支持GPU模块,因此可以完全避免使用它以节省时间(但如果使用它们,则将其保留在此处)。

  • 现在单击“启用”字段将其展开。确保未选中ENABLE_SOLUTION_FOLDERS(Visual Studio Express版本不支持解决方案文件夹)。

  • 还要确保在“ PYTHON”字段中,所有内容都已填充。(忽略PYTHON_DEBUG_LIBRARY)。

  • 最后,单击“生成”按钮。

  • 现在转到我们的opencv / build文件夹。在那里您将找到OpenCV.sln文件。用Visual Studio打开它。

  • 将构建模式检查为Release而不是Debug。

  • 在解决方案资源管理器中,右键单击解决方案(或ALL_BUILD)并进行构建。需要一些时间才能完成。

  • 再次,右键单击INSTALL并进行构建。现在将安装OpenCV-Python。

  • 打开Python IDLE,然后输入“将cv2导入为cv”。如果没有错误,则表明已正确安装。


OpenCV的Python

OpenCV-Python是旨在解决计算机视觉问题的Python绑定库。

Python是由Guido van Rossum发起的通用编程语言,很快就非常流行,主要是因为它的简单性和代码可读性。它使程序员可以用较少的代码行表达想法,而不会降低可读性。

与C / C ++之类的语言相比,Python速度较慢。也就是说,可以使用C / C ++轻松扩展Python,这使我们能够用C / C ++编写计算密集型代码并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C ++代码一样快(因为它是在后台运行的实际C ++代码),其次,在Python中比C / C ++编写代码更容易。OpenCV-Python是原始OpenCV C ++实现的Python包装器。

OpenCV-Python使用Numpy,这是一个高度优化的库,用于使用MATLAB风格的语法进行数值运算。所有OpenCV数组结构都与Numpy数组相互转换。这也使与使用Numpy的其他库(例如SciPy和Matplotlib)的集成变得更加容易。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多