一. 图像双三次插值算法原理:
? ? ? BiCubic基函数形式如下:
二. python实现双三次插值算法
from PIL import Image
import numpy as np
import math
def BiBubic(x):
? x=abs(x)
? if x=1:
? else:
? ? ? return 0
# 双三次插值算法
# dstH为目标图像的高,dstW为目标图像的宽
def BiCubic_interpolation(img,dstH,dstW):
? scrH,scrW,_=img.shape
? for i in range(dstH):
? ? ? for j in range(dstW):
? ? ? ? ? scrx=i*(scrH/dstH)
? ? ? ? ? scry=j*(scrW/dstW)
? ? ? ? ? x=math.floor(scrx)
? ? ? ? ? y=math.floor(scry)
? ? ? ? ? u=scrx-x
? ? ? ? ? v=scry-y
? ? ? ? ? tmp=0
? ? ? ? ? ? ? ? ? if x+ii0 or y+jj0 or x+ii=scrH or y+jj=scrW:
? ? ? ? ? ? ? ? ? ? ? continue
? ? ? ? ? ? ? ? ? tmp+=img[x+ii,y+jj]*BiBubic(ii-u)*BiBubic(jj-v)
? return retimg
im_path='../paojie.jpg'
image=np.array(Image.open(im_path))
三. 实验结果:
四. 参考内容:
?
了解下什么是函数哈
你可以直接写
def f(x):
return x
return x + 1
return x - 1
# 以下为输入和调用
x = int(inpit())
res = f(x)
print(res)
分段函数的代码用python实现如下:
x=eval(input('输入x的值:'))
if x!=0:
else:
y=0
print(y)
¥
立即获取
jumpython分段函
数据空间Datespace
在python中可以进行不同函数的验算应用,同学们只需要好好地了解学习,就能够非常熟练的应用python中的各种功能.那今天让我们来看一看python如何去做一个分段函数呢?
第 1 页
本题目要求根据以下分段函数的定义,计算输入的x对应的y值,输出结果保留两位小数;如果输入的x是非数值型数据,输出'Input Error'.注意:使用math库
输入格式:
可以用pandas的函数进行填充,因为这个就是线性插值法
df..interpolate()
dd=pd.DataFrame(data=[0,np.nan,np.nan,1])
dd.interpolate()
补充知识:线性插值公式简单推导
以上这篇python线性插值解析就是我分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持.