Tobitor:
Tengo un conjunto de datos con un par de imágenes con diferentes tamaños. Para entrenar a mi red neuronal que quería cambiar el tamaño de estas imágenes a un tamaño común añadiendo un marco negro alrededor de todos mis imágenes. Use el siguiente código:
from PIL import Image
import numpy as np
old_im = Image.open('C:/Users/tobis/OneDrive/Desktop/Masterarbeit/data/2017-IWT4S-HDR_LP-dataset/crop_h1/I00002.png')
old_size = old_im.size
print(old_size)
new_size = (800, 800)
print(new_size)
new_im = Image.new("RGB", new_size) ## luckily, this is already black!
new_im.paste(old_im, ((new_size[0]-old_size[0])/2,
(new_size[1]-old_size[1])/2))
Y consiguió este error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-37-3363f60dba3b> in <module>
11 new_im = Image.new("RGB", new_size) ## luckily, this is already black!
12 new_im.paste(old_im, ((new_size[0]-old_size[0])/2,
---> 13 (new_size[1]-old_size[1])/2))
~\.conda\envs\python36\lib\site-packages\PIL\Image.py in paste(self, im, box, mask)
1466 self.im.paste(im, box, mask.im)
1467 else:
-> 1468 self.im.paste(im, box)
1469
1470 def alpha_composite(self, im, dest=(0, 0), source=(0, 0)):
TypeError: integer argument expected, got float
No sé por qué tengo este error. Revisé los tipos de entradas de mi variables y son todos los números enteros y no hay flotadores ... También estoy sorprendido de que la primera sustracción parece estar bien y el segundo se eleva un problema ...
¿Puede alguien ayudarme?
segunda Guerra Mundial :
La división está produciendo un número de coma flotante, pero el método requiere enteros.
new_size = (800, 800)
print(new_size)
new_im = Image.new("RGB", new_size) ## luckily, this is already black!
x = int((new_size[0]-old_size[0])/2)
y = int((new_size[1]-old_size[1])/2))
new_im.paste(old_im, (x,y))