写论文时图片的主观质量对比

# -*- coding: utf-8 -*-
from PIL import Image, ImageDraw

def drawAndShow(picpath, bbox, scale, savepath, position=2):
    # bbox (x0,y0,x1,y1) 即 (left, upper, right, lower)
    bbox_wid = bbox[2] - bbox[0] + 1
    bbox_hei = bbox[3] - bbox[1] + 1
    newbbox = (bbox[0], bbox[1], bbox[2] + 1, bbox[3] + 1)
    bbox_wid_scale = scale * bbox_wid
    bbox_hei_scale = scale * bbox_hei

    im = Image.open(picpath)
    pic_wid = im.size[0]
    pic_hei = im.size[1]
    # 画框
    draw = ImageDraw.Draw(im)
    draw.rectangle(bbox, outline=(255, 0, 0))
    # 截取并放大
    imcrop = im.resize(size=(bbox_wid_scale, bbox_hei_scale), box=newbbox)
    # 粘贴
    if position == 1:  # 左下角
        im.paste(imcrop, box=(0, pic_hei - bbox_hei_scale, bbox_wid_scale, pic_hei))
    if position == 2:  # 右下角
        im.paste(imcrop, box=(pic_wid - bbox_wid_scale, pic_hei - bbox_hei_scale, pic_wid, pic_hei))
    im.save(savepath)
    im.show()

if __name__ == '__main__':
    bbox = (55, 22, 55 + 60, 22 + 60)
    drawAndShow(picpath='pic1_ori.png', scale=2, bbox=bbox, savepath='_pic1_ori.png')

picpath:需要显示的图的绝对路径

bbox:需要放大图中的哪个区域。 用四个坐标表示(x0,y0,x1,y1) 即 (left, upper, right, lower)

scale:需要把这个区域放大几倍

savepath:处理后的图的保存路径

position:把重点区域显示在什么位置。 1是左下角,2是右下角。

 

效果图:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值