图片的剪裁和叠加

 裁剪

from PIL import Image
im = Image.open('1.jpg')
# 左上角和右下角的点
region = im.crop((rect[0], rect[1], rect[2], rect[3]))
region.save('2')

叠加

from PIL import Image
im = Image.open('1.jpg')
# im 为模式为L,变成RGB
im = im.convert('RGB')
im2 = Image.open('2.jpg')
im2 = im2.convert('RGBA')
r,g,b,a = im2.split()
# 新建图层
im3 = Image.new('RGB', im2.size, (255, 0, 255))
# 叠加,实现了将im2中,为255的点的位置显示原来的图层1,为0的点的位置
# 显示为图层3,rect[0],rect[1]为叠加的位置的左上角的坐标。
im.paste(im3,(int(rect[0]), int(rect[1])), mask=r)

画矩形框

PIL
from PIL import Image
im = Image.open('1.jpg')
draw = ImageDraw.Draw(im)
# 左上角和右下角的坐标,和颜色
draw.rectangle((label[0], label[1], label[2], label[3]), outline =colors[int(label[4])])
im.save('2')
matplotlib
import cv2
import matplotlib
img = cv2.imread(detect_folder+'images/'+args.images.split('/')[-1])
    (r, g, b)=cv2.split(img)
img=cv2.merge([b,g,r])
plt.imshow(img)
rect = plt.Rectangle((xmin, ymin), xmax - xmin,
            ymax - ymin, fill=False,
            edgecolor=color[label[4]],
            linewidth=1.0)
plt.gca().add_patch(rect)
plt.savefig('2')

cv2 多边形
img = cv2.imread("./images/" + name + ".jpg")
rect = np.array(xy, np.int32)
pts = rect.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255))
cv2.imwrite('./out_img/' + name + '.jpg',img)
ps
  • jpg格式的图片保存RGB三个通道
  • PNG支持alpha通道,有RGBA四个通道
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值