导入
裁剪与调整大小
学习裁剪和调整图像大小。
当图像尺寸过大时,我们可以先将其调整为较小的尺寸。
获取图像的尺寸
要获取图像的尺寸,我们可以使用 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 像素。
注意:图像的高度是从上往下测量的。
显示原始、缩放及裁剪后的图像
以下代码将在三个独立的窗口中分别显示原始图像、缩放后的图像以及裁剪后的图像: