所以基本的算法或其中的一部分是
for all pixles X in an image
calculate u,v,X'
destinationImage(X) = SourceImage(X')
此部分的代码到现在为止:
from PIL import Image, ImageDraw
from math import sqrt
import numpy
im = Image.open('1a.png')
imArray = numpy.array(im)
xi = input("enter initial position of inputline, x coordinate ")
yi = input("enter initial position of inputline, y coordinate ")
xif = input("enter final position of inputline, x coordinate ")
yif = input("enter final position of inputline, y coordinate ")
xt = input("enter initial position of targetline, x coordinate ")
yt = input("enter initial position of targetline, y coordinate ")
xtf = input("enter final position of targetline, x coordinate ")
ytf = input("enter final position of targetline, y coordinate ")
P = numpy.mgrid[xi:yi]
Q = numpy.mgrid[xif:yif]
Po= numpy.mgrid[xt:yt]
Qo= numpy.mgrid[xtf:ytf]
width = im.size[0]
height = im.size[1]
#draw = ImageDraw.Draw(im)
#draw.line((100,200, 150,200),fill=128,width=3)
#im.show()
vec = [xi,yi]
vec1 = [xif,yif]
vec2 = [xt,yt]
vec3 = [xtf,ytf]
perp = numpy.cross(vec,vec1)
perp1 = numpy.cross(vec2,vec3)
for i in range(width+1):
for j in range(height+1):
X=numpy.mgrid[i:j]
u = numpy.dot((X-P),(Q-P))/pow((numpy.sqrt((Q-P).dot(Q-P))),2)
#v = numpy.dot((X-P),(numpy.cross((Q-P)))/numpy.sqrt((Q-p).dot(Q-P)))
v = numpy.dot((X-P),(perp))/numpy.sqrt((Q-p).dot(Q-P)))
X1 = Po + numpy.dot(Qo-Po) + numpy.dot(v,perp1)/numpy.sqrt((Qo-Po).dot(Qo-Po))
我现在遇到的问题是我应该怎样做最后一个算法行,destinationImage(X)= sourceImage(X')
我想有必要进行一些更改来创建新的图像数组并显示但该怎么做?