图像处理入门

OpenCVBeginner
立即练习

介绍

本教程将教你使用 OpenCV-Python 库处理图像的基础知识。在本教程结束时,你将能够读取、显示和保存图像。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 高级 级别的实验,完成率为 48%。获得了学习者 97% 的好评率。

导入所需的库

首先,让我们导入所需的库。你将使用 cv2 库进行图像处理。请使用 import 来导入它。

准备

通过在 VM 桌面上的终端中输入以下命令来打开 Python shell。

python3

细节

输入 python3 以启动 Python 解释器进程。然后输入以下代码。

import cv2

之后,你就可以在你的代码中使用 cv2 库了。

读取图像

要从文件中读取图像,我们使用 cv2.imread() 函数。该函数将文件路径作为参数,并返回图像作为 NumPy 数组。

图像路径是 /home/labex/Desktop/Image.jpg

细节

输入 python 以启动 Python 解释器进程。然后输入以下代码。

## 读取图像
image = cv2.imread('/home/labex/Desktop/Image.jpg')

## 检查图像是否正确加载
if image is None:
    print('错误:未找到图像。')
else:
    print('图像加载成功。')

注意

如果未找到图像,cv2.imread() 函数会返回 None。在这种情况下,我们打印一条错误消息。否则,我们打印一条成功消息。

显示图像

要显示图像,我们使用 cv2.imshow() 函数。该函数接受两个参数:窗口名称和要显示的图像。

此外,我们使用 cv2.waitKey() 函数来等待按键。这是必需的,以保持窗口打开直到用户按下按键。cv2.waitKey() 函数接受一个参数,即等待按键的毫秒数。如果用户在指定时间内按下按键,该函数将返回按键代码。否则,它将返回 -1。在这种情况下,我们传递 0 以无限期地等待按键。
最后,我们使用 cv2.destroyAllWindows() 函数来关闭所有窗口。这是可选的,但最好在退出 Python 解释器程序之前关闭所有窗口。

细节

输入 python 以启动 Python 解释器进程。然后输入以下代码。

window_name = 'Image'
## 显示图像,图像已在之前的步骤中加载
cv2.imshow(window_name, image)

## 等待按键并关闭窗口
cv2.waitKey(0)

## 在显示图像后销毁窗口
cv2.destroyAllWindows()

注意

  1. 你可以更改代码中的 window_name 并查看结果。
  2. 你可以更改代码中 waitKey 的参数并查看结果。
  3. 为了你的方便,我们在此步骤中删除了图像加载的正确性检测。
  4. 请注意,你正在使用 Python 解释器,因此程序不会在 imshow 之后立即结束,但如果你正在执行 Python 文件,则必须使用 waitKey 来确保窗口不会在 imshow 之后关闭。

将图像写入文件

要以不同的格式保存图像,我们使用 cv2.imwrite() 函数。该函数接受两个参数:文件路径和要保存的图像。

细节

输入 python 以启动 Python 解释器进程。然后输入以下代码。

## 以不同的格式保存图像,图像已在之前的步骤中加载
cv2.imwrite('/home/labex/Desktop/Image.png', image)

注意

  1. 在这种情况下,我们以 PNG 格式 (Image.png) 保存图像。图像保存在与 Python 脚本相同的目录 (/home/labex/Desktop/) 中。
  2. 为了你的方便,我们在此步骤中删除了图像加载的正确性检测。

总结

现在你已经了解了使用 OpenCV-Python 库处理图像的基础知识。你可以尝试不同的图像格式,并探索更高级的操作,例如调整大小、裁剪和滤波。祝你编程愉快!