Logo
Section 1 / 8

裁剪与调整大小

学习裁剪和调整图像大小。

导入

裁剪与调整大小

学习裁剪和调整图像大小。

当图像尺寸过大时,我们可以先将其调整为较小的尺寸。

获取图像的尺寸

要获取图像的尺寸,我们可以使用 OpenCV 库中的 img.shape 方法。其中,img 是我们存储图像的对象。下面我们运行程序来查看图像的尺寸:

1# 导入库 2import cv2 3# 加载图像 4img = cv2.imread(r"/usercode/image.jpg") 5print(img.shape)

输出结果中,前两个参数分别是图像的高度和宽度,第三个参数是颜色通道中的颜色数量——对于 RGB 图像来说,该值为 3。

调整图像大小

在调整图像大小时,最好保持高度与宽度的比例不变,因此我们将按固定比例对图像进行缩放。

首先,设定缩放比例。由于我们希望缩小图像,因此将比例设为 0.8:

1scale = 0.8

接着,根据该比例计算新的宽度和高度。我们知道 img.shape 返回一个元组,可以分别访问其中的元素:

1width = int(img.shape[1] * scale) 2height = int(img.shape[0] * scale)

最后,使用 cv2.resize 方法调整图像大小,命令如下:

1resizedImage = cv2.resize(img, (width, height))

裁剪图像

在学习过程中,你可能已经了解过笛卡尔坐标系:X 轴正方向朝东,Y 轴正方向朝北。在 OpenCV 中,X 轴正方向同样朝右(东),但 Y 轴正方向是向下(南),且坐标原点位于图像的左上角。如下图所示:

我们利用这一特性来进行图像裁剪。实际上,OpenCV 并不需要专门的函数来裁剪图像,只需修改我们想要保留区域的高度和宽度范围即可。使用以下代码实现裁剪:

1croppedImg = img[100:500, 300:600]

如果显示上面代码中的 croppedImg,所呈现的图像其高度范围为 100 到 500 像素,宽度范围为 300 到 600 像素。

注意:图像的高度是从上往下测量的。

显示原始、缩放及裁剪后的图像

以下代码将在三个独立的窗口中分别显示原始图像、缩放后的图像以及裁剪后的图像:

高级编辑

色彩空间