imresize does not work with size = int
![](https://secure.gravatar.com/avatar/226e40fdc55d4597a46279296a616384.jpg?s=120&d=mm&r=g)
imresize(x, 2, mode='F') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/misc/pilutil.py",
I might be doing something wrong but.. This is after the recent removal of the duplicate imresize proposed fix at bottom. line 313, in imresize imnew = im.resize(size, resample=func[interp]) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/Image.py", line 1302, in resize im = self.im.resize(size, resample) TypeError: must be 2-item sequence, not float THIS WORKS
imresize(x, 2., mode='F') array([[-0.654, -0.654, -0.227, 0.201, 0.141, 0.081], [-0.654, -0.654, -0.227, 0.201, 0.141, 0.081], [ 0.242, 0.242, -0.254, -0.751, -0.806, -0.86 ], [ 1.139, 1.139, -0.282, -1.703, -1.752, -1.801], [ 0.216, 0.216, -0.818, -1.851, -1.591, -1.332], [-0.708, -0.708, -1.354, -1.999, -1.431, -0.862]], dtype=float32)
AND THIS
imresize(x, (100,100), mode='F') array([[-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], [-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], [-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], ..., [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862], [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862], [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862]], dtype=float32)
I think the problem is in line 307 size = size / 100.0 I think size needs to be a tuple looking at line 309 which is what is used for size=float size = (array(im.size)*size).astype(int) I think the fix is percent = size / 100.0 size = (array(im.size)*percent).astype(int) Vincent
![](https://secure.gravatar.com/avatar/226e40fdc55d4597a46279296a616384.jpg?s=120&d=mm&r=g)
On Sat, Jul 3, 2010 at 5:29 PM, Vincent Davis <vincent@vincentdavis.net> wrote:
I might be doing something wrong but.. This is after the recent removal of the duplicate imresize proposed fix at bottom.
imresize(x, 2, mode='F') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/scipy/misc/pilutil.py", line 313, in imresize imnew = im.resize(size, resample=func[interp]) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL/Image.py", line 1302, in resize im = self.im.resize(size, resample) TypeError: must be 2-item sequence, not float
THIS WORKS
imresize(x, 2., mode='F') array([[-0.654, -0.654, -0.227, 0.201, 0.141, 0.081], [-0.654, -0.654, -0.227, 0.201, 0.141, 0.081], [ 0.242, 0.242, -0.254, -0.751, -0.806, -0.86 ], [ 1.139, 1.139, -0.282, -1.703, -1.752, -1.801], [ 0.216, 0.216, -0.818, -1.851, -1.591, -1.332], [-0.708, -0.708, -1.354, -1.999, -1.431, -0.862]], dtype=float32)
AND THIS
imresize(x, (100,100), mode='F') array([[-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], [-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], [-0.654, -0.654, -0.654, ..., 0.081, 0.081, 0.081], ..., [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862], [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862], [-0.708, -0.708, -0.708, ..., -0.862, -0.862, -0.862]], dtype=float32)
I think the problem is in line 307 size = size / 100.0 I think size needs to be a tuple looking at line 309 which is what is used for size=float size = (array(im.size)*size).astype(int)
I think the fix is percent = size / 100.0 size = (array(im.size)*percent).astype(int)
Applying that change seems to fix it. The following two operation should get the same results and do.
imresize(x, 200, mode = 'F') array([[ 0.68348145, 0.68348145, 1.43379724, 2.18411303, 1.42521787, 0.66632271], [ 0.68348145, 0.68348145, 1.43379724, 2.18411303, 1.42521787, 0.66632271], [-0.41771227, -0.41771227, -0.07694912, 0.26381403, 0.07136334, -0.12108734], [-1.518906 , -1.518906 , -1.58769548, -1.65648496, -1.28249121, -0.90849739], [-0.43312848, -0.43312848, -0.3485043 , -0.26388013, -0.3611995 , -0.45851886], [ 0.65264904, 0.65264904, 0.89068687, 1.12872469, 0.56009215, -0.00854035]], dtype=float32) imresize(x, 2., mode = 'F') array([[ 0.68348145, 0.68348145, 1.43379724, 2.18411303, 1.42521787, 0.66632271], [ 0.68348145, 0.68348145, 1.43379724, 2.18411303, 1.42521787, 0.66632271], [-0.41771227, -0.41771227, -0.07694912, 0.26381403, 0.07136334, -0.12108734], [-1.518906 , -1.518906 , -1.58769548, -1.65648496, -1.28249121, -0.90849739], [-0.43312848, -0.43312848, -0.3485043 , -0.26388013, -0.3611995 , -0.45851886], [ 0.65264904, 0.65264904, 0.89068687, 1.12872469, 0.56009215, -0.00854035]], dtype=float32)
Vincent
participants (1)
-
Vincent Davis