CV2和PIL按box信息实现图像裁剪

# 用cv2实现裁剪
import cv2
import os

img = cv2.imread("./test_and_verification/1406170100001.jpg")
# cv2.imshow('img',img)
# cv2.waitKey(0)
print(img.shape)
输出
(1422, 1067, 3)

cropped = img[10:200,20:400]
cv2.imwrite("./test_and_verification/cut_test.jpg", cropped)
print(cropped.shape)

输出
(190, 380, 3)

"""
imread方法读取待裁剪的图片,然后查看它的shape,输出是(高度、宽度、通道数)
切片给出的坐标为需要裁剪的图片在原图片上的坐标,顺序为[y0:y1, x0:x1],其中左上角为坐标原点
"""

  

# 用PIL实现裁剪
from PIL import Image

img1 = Image.open("./test_and_verification/1406170100001.jpg")
print(img1.size)

输出
(1067, 1422)

cropped1 = img1.crop((30,40,80,120))
cropped1.save("./test_and_verification/cut_test1.jpg")
print(cropped1.size)

输出
(50, 80)

"""
size的输出是图片的(宽度、高度)
crop需要给定一个box参数,box是一个四元组,元组中元素的顺序是需要裁剪得到的图片在原图中的左、上、右、下坐标,即(left, upper, right, lower)
"""

  原图太大就不 贴出来了,看shape值即可

猜你喜欢

转载自www.cnblogs.com/zheng1076/p/10314790.html
今日推荐