Hello,

Ok it seems my first example is stupid. But have a look at this:

from scipy.misc import *
from pylab import *

n = 11
tab = zeros([n,n])
for i in range(n):
   tab[n/2,i] = 1.
matshow(tab)
for angle in range(8):
   angleDegre = angle * 180. / 8
   rotated = imrotate(tab,angleDegre,interp='bilinear') /255.
   matshow(rotated)
show()

knowing that imrotate is based on PIL's rotate.
There is a uneccessary translation.
No big deal: now I use: scipy.ndimage.interpolation.rotate

Bye bye.
Mathieu

Mathieu Galtier wrote:
Hello,

am I right to think that the rotate function of PIL 1.1.6 is broken?

Try this simple example:

import Image
import numpy as np
tab = np.random.rand(100).reshape(10,10)
im = Image.fromarray(tab)
assert(im == im.rotate(0))

I went a bit further and it seems that rotate translates the image of one pixel or so.

Cheers
Mathieu


_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to