写点什么

『OpenCV-Python』安装以及图像的读取、显示、保存

作者:德育处主任
  • 2024-11-21
    广东
  • 本文字数:1673 字

    阅读完需:约 5 分钟

点赞 + 关注 + 收藏 = 学会了


OpenCV 是一个开源的计算机视觉库,广泛应用于图像处理、机器学习和实时计算机视觉应用。比如图像和视频的滤镜和降噪、物体检测、人脸识别、证件号识别、车牌识别等应用。当然,也有其他工具可以对这些领域做支持,但本专栏是介绍 OpenCV 的,所以只讲 OpenCV 的好话。


OpenCV 对「数字图像」提供了很多种功能函数,图像是由像素组成,而每个像素包含了颜色、亮度、饱和度等信息,这些信息在计算机中都是以数据的方式保存(通常是各种类型的数字),OpenCV 很擅长操作和处理这些数据。


在处理这些数据之前需要先有数据。本文作为 「OpenCV-Python 专栏」的门口篇,将介绍如何安装 OpenCV 以及如何读取、显示、保存图片。


OpenCV 支持多种编程语言,如 Python、C++ 等,它还对 JavaScript 做了支持。


本专栏讲解 OpenCV Python 版本的用法,之后有机会可能还会讲解 JavaScript 版本的用法及应用。


  • OpenCV 官网:https://opencv.org/

  • OpenCV Python 官方文档:https://docs.opencv.org/4.1.2/d6/d00/tutorial_py_root.html

安装并引入

安装

在开始使用 OpenCV 前,需要安装好 Python 环境。可参考 Python 快速入门篇


然后安装 OpenCV。


pip install opencv-python
复制代码


安装成功后可以用 python -c "import cv2; print(cv2.__version__)" 验证安装是否成功。如果输出了 OpenCV 的版本号就证明安装成功了。



引入

创建一个项目目录,在里面创建一个 main.py 文件,打开该文件,写入以下代码就可以引入 OpenCV 了。


import cv2
复制代码

读取图片

读取图片是图像处理的第一步。在 OpenCV 中,cv2.imread() 函数用于读取图像文件。


import cv2
# 读取图片image = cv2.imread('example.png')
复制代码


上面的代码,使用 cv2.imread() 读取了一张图片,并将该图片存在 image 变量里。


cv2.imread() 接收 2 个参数:


  • 参数 1: 本地图片的文件路径。不能直接读取网络上的图片。要读取网络图片,可以使用 requests 库下载图片并将其转换为 OpenCV 能识别的格式。

  • 参数 2:图片读取的模式,支持以下参数。

  • cv2.IMREAD_COLOR:以彩色图像读取,忽略透明度(默认)。

  • cv2.IMREAD_GRAYSCALE:以灰度图像读取。

  • cv2.IMREAD_UNCHANGED:读取包含透明通道的图像。

显示图片

Python 不像 JS 那样可以直接在浏览器运行,用 JS 版的 OpenCV 可以直接将图片渲染到浏览器页面里,而 Python 版需要使用 cv2.imshow() 方法创建一个窗口,然后把图片丢进去显示,并且需要通过 cv2.waitKey() 方法让窗口保持打开状态。


# 显示图片cv2.imshow('Image', image)
# 等待用户按任意键关闭窗口cv2.waitKey(0)
# 关闭所有窗口释放资源cv2.destroyAllWindows()
复制代码



cv2.imshow() 函数的两个参数:


  • 参数 1:是窗口名称。

  • 参数 2:是要显示的图像。


「窗口名称」值得是这个图片窗口的名称,在上图中图片顶部的状态栏里有显示这个名字。


在 OpenCV 中,一个窗口能展示一个图片,如果将多个图片有序的放进同一个窗口就会形成动画,之后介绍视频的时候会提到这点。


只使用 cv2.imshow() 展示图片只能保留一瞬间的展示时间,如果想长时间维持展示状态可以使用 cv2.waitKey(0) 让程序停止下来,这样就不会关掉图片窗口了。


cv2.waitKey() 会等待并返回用户按下键盘上的任意键,窗口才会继续运行或关闭。参数 0 表示无限等待,直到用户按下键盘任意键才会继续执行代码。你也可以传入其他数值,比如传入 30 表示等待 30 毫米 才执行下一步操作。


最后执行 cv2.destroyAllWindows() 关闭所有窗口,释放资源。


OpenCV 的操作对象是图片,以后学到更高阶的方法时经常需要使用 cv2.imshow() 将图片输出来看看,这其实有点像我们在控制台查看日志的功能。所以 cv2.imshow() 方法一定要记住。

保存图片

在图像处理结束后(比如修改图片尺寸、加个滤镜等操作,后面的文章会讲到),可以使用 cv2.imwrite() 将处理结果保存为文件。


# 保存图片cv2.imwrite('output.jpg', image)
复制代码


cv2.imwrite() 函数接受两个参数:


  • 参数 1:保存的文件路径。

  • 参数 2:要保存的图像数据。




以上就是本文的全部内容了,虽然还没讲到 OpenCV 的重点,但这几个方法在之后会经常用到。要记住了。


点赞 + 关注 + 收藏 = 学会了

发布于: 刚刚阅读数: 2
用户头像

反派 2019-03-19 加入

用键盘绣花

评论

发布
暂无评论
『OpenCV-Python』安装以及图像的读取、显示、保存_OpenCV-Python_德育处主任_InfoQ写作社区