@sevenup233
2019-06-09T10:35:30.000000Z
字数 1056
阅读 435
PY
from PIL import Imageimg=Image.open("1.png")#邻近法def near(img):width=img.size[0]height=img.size[1]newim=Image.new("RGB",(2*width,2*height),(0,0,0))for j in range(height*2):ory=int(j/2)for i in range(width*2):orx=int(i/2)orpixel=img.getpixel((orx,ory))newim.putpixel((i,j),orpixel)newim.save('near.png')#双线性def biline(img):width=img.size[0]height=img.size[1]newim=Image.new("RGB",(2*width,2*height),(0,0,0))#求中点ori_mw=(width-1)/2ori_mh=(height-1)/2cur_mw=(width*2-1)/2cur_mh=(height*2-1)/2#先坐标变换,再找临近四个基准点,第j列(y),第i行(x)for j in range(height*2):ref_y=ori_mh-(ori_mh*(cur_mh-j))/cur_mhfor i in range(width*2):ref_x=ori_mw-(ori_mw*(cur_mw-i))/cur_mwy1=int(ref_y)y2=y1+1x1=int(ref_x)x2=x1+1#得到当前点的pixel属性,rgbpixel=[]for k in range(3):if x2>width-1:x2=width-1x1-=1if y2>height-1:y2=height-1y1-=1pixel.append(int(img.getpixel((x1,y1))[k]*(x2-ref_x)*(y2-ref_y)+img.getpixel((x2,y1))[k]*(ref_x-x1)*(y2-ref_y)+img.getpixel((x1,y2))[k]*(x2-ref_x)*(ref_y-y1)+img.getpixel((x2,y2))[k]*(ref_x-x1)*(ref_y-y1)))pixel.append(255)newim.putpixel((i,j),tuple(pixel))newim.save('line.png')