在本文中,我们将讨论在 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/22
- ♥ python插入排序的优化11/05
- ♥ python和html有什么区别09/05
- ♥ python文件运行后自动退出怎么办?09/16
- ♥ Python如何实现打字训练程序12/02
- ♥ 什么是python ide10/03
内容反馈