欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

借助OpenCV,Numpy和Matplotlib组合的Python图像处理

程序员文章站 2024-01-20 16:51:40
...

背景知识****

  • Python的OpenCV计算机视觉示例:傻瓜的完整指南
  • OpenCV使用Python进行计算机视觉的完整指南
  • Matplotlib教程:使用Python的可视化工具进行绘图

载入图片

我们将在这里处理许多Python示例。 实际上,比起许多人刚开始使用OpenCV的Python绑定要容易得多。 您将需要两个主要的库,以及第三个可选的库:python-OpenCV,Numpy和Matplotlib。

Windows用户

python-OpenCV-有其他方法,但这是最简单的。下载适当的wheel(.whl)文件,然后使用pip安装。

pip install numpy
pip install matplotlib

Linux / Mac用户

pip3 install numpy or apt-get install python3-numpy. You may need to apt-get install python3-pip.
pip3 install matplotlib or apt-get install python3-matplotlib.
apt-get install python3-OpenCV

Matplotlib是显示视频或图像帧的可选选项。 我们将在此处展示几个使用它的示例。 Numpy用于所有“数字和Python”。 我们主要利用Numpy的数组功能。 最后,我们使用OpenCV的特定于python的绑定(称为python-OpenCV)。

如果没有完全安装OpenCV(大小约为3GB),您将无法执行一些针对OpenCV的操作,但是实际上,您可以使用相当少的python-OpenCV安装来完成很多工作。 我们将在本系列后面的部分中完全使用OpenCV的完整安装,因此,如果您愿意,可以随意获取它,但是这3个模块将使我们忙一阵子!

通过运行Python并执行以下操作,确保安装成功:

import cv2
import matplotlib
import numpy

首先,当涉及图像和视频分析时,我们应该了解一些基本的假设和范例。 用今天几乎所有摄像机的记录方式来说,记录实际上都是帧,每秒显示30-60次,一次一次显示。 但是,它们的核心是静态帧,就像图像一样。 因此,图像识别和视频分析大部分使用相同的方法。 诸如定向跟踪之类的某些事情将需要一连串的图像(帧),但是诸如面部检测或物体识别之类的事情可以用几乎与图像和视频上完全相同的代码来完成。

接下来,很多图像和视频分析归结为尽可能简化源。 这几乎总是从转换为灰度开始的,但是也可以是滤色器,渐变或它们的组合。 从这里,我们可以对源进行各种分析和转换。 通常,最后要完成的工作是先进行转换,然后进行分析,将所有我们希望应用的叠加层都应用回原始源,这就是为什么您经常可以看到物体或面部识别的“成品”的原因 在全彩色图像或视频上显示。 但是,很少像这样以原始形式实际处理数据。 我们可以在基本层面上做的一些例子。 所有这些都是通过基本的网络摄像头完成的,没什么特别的:

背景剔除:

色彩过滤:

边缘检测:

加载视频源

在图像上绘画和写作

图像操作

图像算术和逻辑

阈值

颜色过滤

模糊和平滑

形态转换

Canny边缘检测和渐变

模板匹配

GrabCut前景提取

角点检测

功能匹配(Homography)

MOG减少背景

Haar级联对象检测面部和眼睛

创建自己的Haar Cascade

详情参阅http://viadean.com/opencv_numpy_matplotlib.html