在本文中,我们将讨论在 Python 中实现图像裁剪的两种方法,一种使用 Pillow,另一种使用 OpenCV。两种方式都需要几行简单的生成
码,这可能也就是现在Python那么流行的原因吧。
首先,我们有一张原始图片,如下图所示:
然后,我们利用OpenCV对其进行裁剪,代码如下所示:
import cv2
img = cv2.imread("./data/cut/thor.jpg")
print(img.shape)
cropped = img[0:128, 0:512] # 裁剪坐标为[y0:y1, x0:x1]
cv2.imwrite("./data/cut/cv_cut_thor.jpg", cropped
推荐学习《
》
在这里,我们首先使用 imread 方法读取要裁剪的图像,然后检查其形状。 shape的输出为(1080, 1920, 3),输出顺序为height,width,pass
车道数。之后,我们使用数组切片来获取需要裁剪的图像范围。这里需要注意的是,切片给出的坐标是要裁剪的图像在原始图像上的坐标。
顺序为[y0:y1,x0:x1],其中原图左上角为坐标原点。最后,我们使用 cv2.imwrite() 方法将裁剪后的图片保存到本地(第一个参数是图片
名,第二参数为需要保存的图片),如图所示:
接下来我们看看如何使用Pillow裁剪图片,代码如下:
from PIL import Image
img = Image.open("./data/cut/thor.jpg")
print(img.size)
cropped = img.crop((0, 0, 512, 128)) # (left, upper, right, lower)
cropped.save("./data/cut/pil_cut_thor.jpg")
首先,我们使用 open 方法读取图像,然后检查它的大小(这里的大小与 OpenCV 中的形状相似)。 size的输出是(1920, 1080),即
是图像的宽度和高度。之后,我们调用crop方法来裁剪图像。 Crop 需要给一个 box 参数。盒子是四元组,元组中元素的顺序是
裁剪后的图像在原始图像中的左、上、右、下坐标,即(左、上、右、下)。然后,我们使用 save 方法保存裁剪后的图像。喜欢
下图所示,Pillow可以同样完成OpenCV裁剪图片的工作。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python是后端吗?10/30
- ♥ Python __call__ 方法(详细版)11/09
- ♥ python chardet检测编码12/26
- ♥ 如何检测python环境10/03
- ♥ python中目录结构的介绍和使用10/26
- ♥ python如何定义和调用函数08/19
内容反馈