OpenCV 中如何保存图像?

推荐答案

在 OpenCV 中,可以使用 cv2.imwrite() 函数来保存图像。该函数的基本语法如下:

  • filename:保存图像的文件路径,包括文件名和扩展名(如 image.png)。
  • img:要保存的图像数据,通常是一个 NumPy 数组。
  • params:可选参数,用于指定图像格式的特定参数(如 JPEG 质量)。

示例代码:

本题详细解读

1. cv2.imwrite() 函数的作用

cv2.imwrite() 函数用于将图像数据保存到指定的文件中。它支持多种图像格式,如 JPEG、PNG、BMP 等。文件格式由文件扩展名决定。

2. 参数详解

  • filename:指定保存图像的文件路径和名称。文件扩展名决定了图像的保存格式。例如,.jpg 表示保存为 JPEG 格式,.png 表示保存为 PNG 格式。

  • img:这是要保存的图像数据,通常是一个 NumPy 数组。这个数组通常是通过 cv2.imread() 读取图像后得到的。

  • params:这是一个可选参数,用于指定图像格式的特定参数。例如,对于 JPEG 格式,可以指定图像质量(0-100),默认值为 95。对于 PNG 格式,可以指定压缩级别(0-9),默认值为 3。

    示例:

3. 支持的图像格式

OpenCV 支持多种图像格式,常见的包括:

  • JPEG (.jpg, .jpeg)
  • PNG (.png)
  • BMP (.bmp)
  • TIFF (.tiff, .tif)
  • WebP (.webp)

4. 注意事项

  • 如果指定的文件路径已经存在,cv2.imwrite() 会覆盖原有文件。
  • 如果文件路径中的目录不存在,cv2.imwrite() 会抛出错误。因此,在保存图像之前,确保目录存在或使用 os.makedirs() 创建目录。
  • 保存的图像质量可能会受到格式和参数的影响,特别是在使用有损压缩格式(如 JPEG)时。

5. 示例代码

-- -------------------- ---- -------
------ ---
------ --

- ----
----- - -----------------------

- --------
--------------------- --------------

- ----- --- --
-------------------------------- ------

- ----- ---- ------ --
-------------------------------- ------ -------------------------- ----

通过以上代码,可以将图像保存为不同格式,并控制图像的质量或压缩级别。

纠错
反馈