Setup a canonical data type for rotations and translations in SimpleCV (this is to say the container class that does the type conversion in a user friendly way similar to what would be in a render engine). In 3.0 these will be used to drive rotations and translations of points and images. We will need to spec this out a great deal before building it. What I would like to have is something like this is:
myTrans = img.TransformationTo(img2)
myTrans.translation # [x,y,z]
myTrans.rotation # [pitch,yaw,roll]
myTrans.rotToQuat # [quaternion]
myTrans.perspective # [4x4 htm] perspective
myTrans.affine # [3x3] affine
myTrans.toCVMat # CV versions of above
img_prime = img.applyTransform(myTrans)
img2.blit(img_prime,alpha=0.5) # draw the image on top of the other one
For this all to work in world space we may need to link to a camera calibration matrix. It may also be helpful to subclass this out a bit so we know what we are dealing with (i.e. matrices that deal with the change in pose between cameras should delineated from a matrix that describes the motion between to two images).
Anonymous