快速像素混合插值

用python实现的一个象素插值demo程序,象素混合累积差插值,和QQ上一个朋友聊图像拼接时,写的演示程序。

确切地说,并未用到图像学的知名算法,实际效果还行,理论效果有待验证。

主要原理是图形学中累积缓存差+计算机网络中的二元指数退避。

#-*-coding:gbk-*-
import math
import Image

#两张图
imageA = Image.open(r"a.jpg")
imageB = Image.open(r"b.jpg")
#最大半径
rMax = 2
#原点X,Y坐标
originX = 10
originY = 10
origin = (originX,originY)
#象素字节长,RGB=3
pixelSize = 3
#结果
C = [0,0,0]

for x in range(-rMax,rMax+1):
    for y in range(-rMax,rMax+1):
        distance = math.sqrt(abs(x+y))
        if distance > rMax:
            continue
        pixelA = imageA.getpixel((originX+x,originY+y))
        pixelB = imageB.getpixel((originX+x,originY+y))
        for i in range(pixelSize):
            delta = (float(pixelA[i]) + float(pixelB[i]) - 2*float(C[i])) / (2**distance)
            C[i] += delta

for i in range(pixelSize):
    if C[i] < 0:
        C[i] = 0
    else:
        C[i] = int(C[i]) % 255

print "A图象素:",imageA.getpixel(origin)
print "B图象素:",imageB.getpixel(origin)
print "插值后象素:",C


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值