OpenCV-Python:计算机视觉框架

目录

1.背景

2.早期计算机视觉框架

3.当前主流框架

4.计算机视觉框架的未来趋势

5.知识笔记


1.背景

        俗话说“工欲善其事必先利其器”,想要学好计算机视觉,需要借助于相关的计算机视觉库,这样在进行学习的时候可以达到事半功倍的效果。

2.早期计算机视觉框架

  • MATLAB

        MATLAB(矩阵实验室)是一种高级的数学计算和科学编程语言,广泛用于工程、科学和术领域。它提供了一种快速、方便和可靠的方式来执行数值计算、可视化和数据分析。最早历史可以追溯到1970年,开始是仅作为数据处理工具箱,后期支持图像处理。

以下是 MATLAB 的一些主要特点和功能:

1.数值计算和算法:MATLAB 提供了丰富的数学和科学计算函数,可以进行矩阵和向量运算、线性代数、数值优化、微积分、概率统计等。

2.可视化和绘图:MATLAB 提供了强大的绘图和可视化功能,可以创建二维和三维图形、动画、插值和曲线拟合等。

3.数据分析和处理:MATLAB 提供了丰富的数据处理和分析工具,可以进行数据清洗、特征提取、模式识别、信号处理等。

4.编程和脚本语言:MATLAB 是一种高级的编程语言,支持脚本化和函数化编程,可以编写复杂的算法和程序。

5.应用开发和部署:MATLAB 提供了应用程序开发工具包,可以创建独立的应用程序、用户界面和部署到不同的平台上。

6.教育和学术研究:MATLAB 是教育界和学术研究领域中广泛使用的工具,用于教学、科研、数据分析和模拟。

MATLAB 的优点包括易于学习和使用、强大的数值计算功能、丰富的工具箱和扩展库、活跃的社区支持等。它被广泛应用于工程、科学、金融、医学等领域,用于解决各种复杂的问题和任务。MATLAB 提供了许多图像处理函数和工具箱,用于处理、分析和操作图像数据。以下是一些常见的图像处理函数和相关工具箱:

1.图像读取和显示函数:

  • imread:读取图像文件
  • imshow:显示图像
  • imwrite:保存图像

2.图像预处理函数:

  • imresize:调整图像大小
  • imrotate:旋转图像
  • imcrop:裁剪图像
  • imadjust:调整图像的对比度和亮度
  • imfilter:应用各种图像滤波器

3.图像增强和滤波函数:

  • histeq:直方图均衡化
  • medfilt2:中值滤波
  • imsharpen:图像锐化
  • imnoise:添加噪声

4.图像分割和边缘检测函数:

  • im2bw:图像二值化
  • edge:边缘检测
  • bwlabel:图像标记和分割
  • regionprops:提取图像区域属性

5.图像特征提取函数:

  • corner:角点检测
  • hough:霍夫变换
  • detectSURFFeatures:SURF特征检测
  • extractHOGFeatures:HOG特征提取

6.图像配准和重建函数:

  • imregtform:图像配准
  • imwarp:图像变换
  • imfuse:图像融合

7.相关工具箱:

  • Image Processing Toolbox:提供了丰富的图像处理函数和工具
  • Computer Vision Toolbox:提供了计算机视觉和图像分析的函数和工具
  • Deep Learning Toolbox:提供了深度学习和神经网络的函数和工具
  • Maxtrox mil

        Maxtrox MIL(Multiple Instance Learning)是一种计算机视觉库,1993年发布的第一个版本,用于解决多实例学习问题。多实例学习是一种监督学习的方法,其中训练数据被组织为实例袋,每个实例袋包含一个或多个实例。与传统的监督学习不同,多实例学习的目标是学习一个模型,能够对整个实例袋进行分类,而不是对单个实例进行分类。

Maxtrox MIL 提供了一套简单而强大的接口和算法,用于解决多实例学习问题。它包括了多个经典的多实例学习算法,如 MILBoost、MILES、MI-SVM 等,可以根据具体的问题选择合适的算法进行模型训练和分类。

  • Halcon

Halcon(HALCON)是由德国MVTec Software GmbH开发的一款强大的计算机视觉库,最早可以追溯到1996年,它是一个全面的软件工具包,用于开发和部署各种计算机视觉应用程序。Halcon提供了丰富的功能和算法,可以处理图像和视频数据,实现目标检测、识别、测量、分割等各种计算机视觉任务。

  • OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,由英特尔公司于在1996年启动,1999年发起并积极维护,,2006年发布1.0版本。它是一个跨平台的库,可在多个操作系统上运行,包括Windows、Linux、macOS、Android和iOS。

  • VisionPro

        VisionPro 是 Cognex 公司2009年开发发布的计算机视觉库,用于工业自动化和机器视觉应用。它提供了一套丰富的功能和工具,用于图像处理、特征提取、目标检测、物体识别、测量和校准等任务。VisionPro 库具有高性能和稳定性,并支持多种操作系统和编程语言,包括 C++、C#、VB.NET 和 Python。它还提供了用户友好的图形用户界面,用于配置和调试视觉应用程序。

  • simpleCV

SimpleCV 是一个简单易用的计算机视觉库,基于 Python 编程语言,用于处理图像和视频数据,并进行各种计算机视觉任务。它提供了丰富的功能和工具,可以帮助用户快速开发计算机视觉应用程序。SimpleCV 的优势在于它的简单易用性和灵活性。它提供了丰富的文档和示例代码,可以帮助用户快速上手和理解库的使用。同时,SimpleCV 还能够与其他 Python 库和工具集成,如 NumPy、OpenCV、scikit-learn 等,可以扩展其功能和应用范围。

  • BoofCV

        BoofCV 是一个用于计算机视觉和机器人视觉的开源 Java 库。它提供了一系列高性能的算法和工具,用于图像处理、特征提取、目标检测与跟踪、摄像头标定等任务。

  • Dlib

        Dlib 是一个开源的 C++ 库,用于机器学习、计算机视觉和图像处理任务。它提供了一系列高性能的算法和工具,包括人脸检测、人脸关键点检测、人脸识别、姿态估计、目标跟踪、图像分类等。

  • JavaCV

        JavaCV 是一个基于 Java 的开源计算机视觉库,它提供了与 OpenCV(Open Source Computer Vision Library)的绑定,使开发者可以在 Java 环境中使用 OpenCV 的功能。JavaCV 提供了对 OpenCV 函数和数据结构的封装,使 Java 开发者可以轻松地调用 OpenCV 的各种功能。JavaCV 还提供了一些额外的功能,如视频捕捉、图像显示、视频编解码等。JavaCV 支持的操作系统包括 Windows、Linux、macOS 等,并且可以与 Java 的图形界面库(如 Swing 和 JavaFX)集成,方便开发图像处理和计算机视觉应用程序。

3.当前主流框架

  • TensorFlow
  • PyTorch
  • Keras
  • Caffe
  • Paddlepaddle

  • OpenVINO
  • TensorRT
  • onnxruntime
  • Deepface
  • YOLO/DarkNet
  • mmdetection
  • Paddle-detection/seg/ocr

4.计算机视觉框架的未来趋势

  • 低代码平台流行趋势明显
  • 传统视觉和深度学习结合趋势明显
  • 算法设计可视化、流程化趋势
  • 算法模块易用性、通用性趋势
  • 计算资源异构化支持趋势
  • 深度模型训练简捷化趋势
  • 无代码化
  • 算法设计流程可视化
  • 导出部署支持多种语言
  • 计算资源支持异构化
  • 算法model zoo丰富化 ,本地与云端
  • 开发者可以贡献算法

5.知识笔记

OpenCV-Python:计算机视觉框架_第1张图片

你可能感兴趣的:(计算机视觉,opencv,python,框架,OpenCV-Python)