OpenCV 调整图像大小

17 Mar 2025 | 4 分钟阅读

有时,需要转换加载的图像。 在图像处理中,我们需要调整图像大小以执行特定操作。 图像通常存储在 Numpy ndarray(数组)中。 ndarray.shape 用于获取图像的维度。 我们可以使用维度变量的索引来获取每个像素的宽度、高度和通道数。

示例:1

输出

Resized Dimensions : (199, 300, 3)

OpenCV Resize the image

调整图像大小意味着更改图像的维度,即宽度或高度以及两者。 还可以通过调整图像大小来保留原始图像的宽高比。 OpenCV 提供 cv2.resize() 函数来调整图像大小。 语法如下:

参数

  • src - 源/输入图像(必需)。
  • dsize - 输出图像的所需大小(必需)
  • fx - 沿水平轴的比例因子。(可选)
  • fy - 沿垂直轴的比例因子。
  • Interpolation(可选) - 此标志使用以下方法
    • INTER_NEAREST - 最近邻插值 INTER_AREA - 使用像素区域关系进行重采样。 当我们尝试进行图像缩放时,它类似于 INTER_NEAREST 方法。
    • INTER_CUBIC - 4x4 像素邻域上的双三次插值。
    • INTER_LANCOZS4 - 8x8 像素邻域上的 Lanczos 插值。

调整图像大小的示例

有几种调整图像大小的方法。 以下是一些执行调整大小操作的示例

  1. 保留宽高比(保留图像的宽高比)
    • 缩小尺寸(减小图像的大小)
    • 放大尺寸(增大图像的大小)
  2. 不保留宽高比
    • 仅调整宽度
    • 仅调整高度
  3. 调整指定的宽度和高度

保留宽高比

  • 使用 resize() 缩小尺寸

输出

Original Dimensions :  (332, 500, 3)
Resized Dimensions :  (199, 300, 3)

Example of resizing the images

在上面的示例中,scale_per 变量保存需要缩放的图像的百分比。 value<100 用于缩小提供的图像。 我们将使用此 scale_per 值以及原始图像的维度来计算输出图像的宽度和高度。

使用 resize() 放大尺寸

输出

Original Dimensions :  (332, 500, 3)
Resized Dimensions :  (398, 600, 3)

Example of resizing the images

不保留宽高比

  • 仅调整宽度

在下面的示例中,我们为宽度提供了一个以像素为单位的特定值,而高度将保持不变。

输出

Original Dimensions :  (332, 500, 3)
Resized Dimensions :  (440, 500, 3)

Example of resizing the images
  • 调整高度

在下面的示例中,scale_per 值保存了必须缩放高度的百分比,或者我们可以提供以像素为单位的特定值。

输出

Original Dimensions :  (332, 500, 3)
Resized Dimensions :  (200, 500, 3)

Example of resizing the images

调整指定的宽度和高度

  • 我们可以指定宽度和高度。

输出

Example of resizing the images
下一个主题OpenCV 图像旋转