OpenCV学习(一)——Core功能模块

功能模块简介

  • 前言
  • OpenCV的各个模块
  • Core模块
    • Mat 基本图像容器
      • Mat通过引用计数器判定当前内容是否应该被析构
      • Mat的=操作运算符是浅拷贝的

前言

  功能模块,简单说来就是将程序分为若干个功能,每个功能模块完成一个子功能,再把这些功能模块总起来组成一个整体。以满足所要求的整个系统的功能。

OpenCV的各个模块

  这里我们以OpenCV4.5.1为例,介绍OpenCV的主要模块与拓展模块。其主要模块有core(核心模块),imgproc(图像处理),imgcodecs(图像编码),videoio(视频输入输出),highgui(高级GUI),video(视频分析),calib3d(相机校准与三位重建),features2d(2D功能框架),objdetect(目标检测),dnn(深度神经网络模块),ml(机器学习模块),flann(多维空间中的聚类和搜索),photo(计算摄影),stitching(图像拼接),gapi(图执行接口)。OpenCV对应的拓展模块比较多,在以后遇到的时候,我们再一一进行讲解
OpenCV学习(一)——Core功能模块_第1张图片
  图像来源

Core模块

  笔者认为,除了做底层开发,即便你只是想要调用OpenCV,那你都有必要去了解OpenCV的Core模块。

Mat 基本图像容器

  通过源码我们可以了解到Mat的一些特性。

Mat通过引用计数器判定当前内容是否应该被析构

OpenCV学习(一)——Core功能模块_第2张图片

Mat的=操作运算符是浅拷贝的

  通过源码我们可以判断出,Mat通过等于运算符将执行浅拷贝操作(只是让引用计数器+1);如果需要进行深拷贝需要使用copyTo()方法或者.clone()
OpenCV学习(一)——Core功能模块_第3张图片

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