Python 图像融合&变量保存&时间格式化

需求:将一张图和另外一张图进行融合,自定义位置。

1. 图像融合

Blend函数

from PIL import Image 
img_1 = Image.open(r'lenna.png').resize((32,32))
img_2 = Image.open(r'00000_00001.jpg').resize((32,32)) 
img_blend = Image.blend(img_1, img_2,0.4) # 需满足两张图片的像素一样;其次,括号里面最后一个参数0.4可以任意调节大小,数值越大,第二张图越突出。
img_blend.save(r'1.jpg') # save存储图片至指定的地址。

大概的原理是:
I m g = I m g 1 ( 1 − α ) + I m g ⋅ α Img=Img_1(1-\alpha)+Img\cdot\alpha Img=Img1(1α)+Imgα

需要自主测试一下透明图的效果,与透明图进行融合的效果应该是只有透明的位置加上去。

遗憾的是这种方法无法实现位置的自定义。

Paste和Composite 方法

  • 先new一个RGBA的图像。
  • paste贴上加载的两张图像。
  • 插值再插出来。
file = mix(file, verse, co)

# 图片融合
def mix(img1,img2,coordinator):
    im = img1
    mark = img2
    layer = Image.new('RGBA', im.size, (0, 0, 0, 0))
    layer.paste(mark, coordinator)
    out = Image.composite(layer, im, layer)
    return out

四个0的位置就是在调整融合的图片的位置

2. 变量保存

Pickle

pickle很强大,可以保持Python原生数据类型和自定义的类。

import pickle
pickle.dump(grads, open("grads", 'wb'))
grad=pickle.load(open("grads", 'rb'))
  • dump(变量, 文件指针)
  • load(文件指针)
    使用都需要用到open命令。

Numpy

如果是numpy变量可以调用numpy的save和load命令

  • np.save(filename,array)
  • np.load(filename)

3. 时间格式化

获取当前时间并格式化

import time
print(time.strftime("[%b %d %Y %H:%M:%S]", time.localtime()))

Log函数

import time
def Log(*args):
    nowtime=time.strftime("[%H:%M:%S]",time.localtime())
    print(nowtime,end='')
    for i in args:
        print(i,end=" ")
    print()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值