【计算机视觉处理1】OpenCV入门

简介: OpenCV是一个跨平台且开源的计算机视觉和机器学习库,全称Open Source Computer Vision Library 。由Intel公司开源。其中主体库的代码是Intel用C/C++编写的,部分贡献库代码由社区程序员提供。

OpenCV入门

作者:ZackSock

1、什么是OpenCV?

OpenCV是一个跨平台且开源的计算机视觉和机器学习库,全称Open Source Computer Vision Library 。由Intel公司开源。其中主体库的代码是Intel用C/C++编写的,部分贡献库代码由社区程序员提供。

OpenCV不仅支持多个平台,同时还提供了多种语言的接口,包括Java、Python、Ruby等。本次课程使用的Python语言。

详细内容可以查看OpenCV的官网:[opencv.org/][https://o…

2、OpenCV能做什么?

OpenCV中实现了了很多计算机视觉算法,包括基本的图片运算、阈值处理、图像滤波、形态学操作等。除此之外,OpenCV还提供了级联分类器可以用于人脸检测。

不仅是图片,OpenCV同时提供了视频处理相关的操作,下面我们来看看一些案例。

(1)边缘检测

边缘检测的算法有很多,其中Canny算法是当前最优算法,下面图片就是使用Canny算法实现的边缘检测:

网络异常,图片无法展示
|

可以看到手机的边缘被完整的展现出来了。对于人像或者其它复杂的图片Canny也有比较好的表现,下面是人像的边缘检测图:

网络异常,图片无法展示
|

(2)人脸检测

在OpenCV的官网提供了人脸的特征文件,我们可以使用Haar级联分类器快速实现人脸检测的操作,下面是使用OpenCV实现的人脸检测:

网络异常,图片无法展示
|

检测效果还是比较不错的。

(3)图像腐蚀

腐蚀是最基本的形态学操作之一,我们可以通过腐蚀操作来消除图片中的一些细小的裂缝,比如下面就是简单的腐蚀操作的例子:

网络异常,图片无法展示
|

除了上面这些,OpenCV还要许多其它操作,在后续的文章中会陆续介绍到,下面我们在Python中来安装一下OpenCV。

3、在Python中安装OpenCV

在Python中想要使用OpenCV非常简单,我们只需要使用pip安装一个模块就好了,语句如下:

pip install opencv-python
复制代码

上面安装的就是OpenCV的主体库,也就是Intel公司提供的。我们可以通过下面语句安装贡献库:

pip install opencv-contrib-python
复制代码

不安装贡献库不影响我们使用主体库的基本功能。

在Python文件中,我们通过下面语句导入OpenCV:

import cv2
复制代码

导入后我们就可以使用它了。

4、图片的读取

读取图片的函数格式如下:

retval = cv2.imread(filename, flags=None)
复制代码
  • retval:返回的图片对象(numpy.ndarray类型),如果读取失败返回None。
  • filename:文件名称,为必选参数。
  • flags:读取标记,用来控制文件读取的类型,我们可以选择不给它传值。

现阶段我们可以把retval简单理解为图片对象。至于flags常用的值可以看下表:

含义
cv2.IMREAD_UNCHANGED 格式不变
cv2.IMREAD_GRAYSCALE 灰度图
cv2.IMREAD_COLOR 3通道BGR图,flags的默认值

暂时我们不需要理解各个参数的含义,现阶段我们不会使用flags参数。下面我们使用imread函数读取一张图片:

import cv2
retval = cv2.imread('im.jpg')
复制代码

上面就是读取图片的操作了。

5、显示图片

读取图片是最基本的操作,后续的图像操作都需要先获取图片对象,比如接下来要说的显示图片。

显示图片的操作通常伴随着等待和销毁,这么说你可能不理解,下面我们来看显示图片的代码:

import cv2
im = cv2.imread('im.jpg')
# 显示图片
cv2.imshow(im, 'im')
cv2.waitKey(0)
cv2.destroyAllWindows()
复制代码

上面起主要作用的是imshow函数,它的函数格式如下:

imshow(winname, mat)
复制代码

参数的解释如下:

  • winname:显示图片的窗口的名称
  • mat:图片对象,就是我们通过imread获取的图片对象。

我们可以调用imshow函数显示图片,但imshow函数只会为我们显示一瞬间。我们看到的效果也就是一闪而过的窗口,因此需要配合我们的waitKey函数。waitKey的函数格式如下:

key = waitKey(delay=None)
复制代码

它的作用是等待用户输入,它会返回一个键盘的ASCII值。配合waitKey函数我们就能让窗口显示。

其中delay参数的函数是等待的毫秒数。我们可以选择不给或者给0,这就表示一直等待。

至于destroyAllWindows函数则是一个常规操作,因为OpenCV是由C/C++编写的,所以我们需要手动回收窗口的内存。

目录
相关文章
|
3月前
|
机器学习/深度学习 监控 算法
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
基于计算机视觉(opencv)的运动计数(运动辅助)系统-源码+注释+报告
77 3
|
6月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
76 4
|
6月前
|
存储 机器学习/深度学习 编解码
计算机视觉的基础概念与入门
之前学习了一下 Python 环境下计算机视觉方面的一些应用(主要是 OpenCV),但是对于计算机视觉方面的种种概念都是一笔带过,计算机视觉是一个很大的领域,在深入它之前 ,有必要对其中的一些基础概念有一个宏观的理解。
|
7月前
|
机器学习/深度学习 算法 Java
计算机视觉——opencv快速入门(一) opencv的介绍与安装
OpenCV是开源计算机视觉库,支持C++, Python, Java等,用于图像处理、视频分析等。建议使用较早版本如3.4.3,因高版本部分算法需付费。通过Anaconda创建Python虚拟环境来安装,选择合适的Python和OpenCV版本。激活环境后,用`pip`安装`opencv-python`。基本环境配置完成后,通过显示图像的Python代码测试安装是否成功。
计算机视觉——opencv快速入门(一) opencv的介绍与安装
|
6月前
|
机器学习/深度学习 XML 计算机视觉
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它提供了大量的函数和工具,用于处理图像和视频数据。
|
7月前
|
计算机视觉
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
108 0
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
|
7月前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割
openCV 3计算机视觉 Python语言实现 笔记 第4章 深度估计与分割
|
7月前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
|
7月前
|
计算机视觉 索引 Python
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
|
7月前
|
机器人 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记__第一章
openCV 3计算机视觉 Python语言实现 笔记__第一章
下一篇
开通oss服务