изменить размер изображения в Python - PullRequest
0 голосов
/ 14 апреля 2019

Я хочу изменить размер изображения в формате 460x700 RGB.Но когда я запускаю свою функцию, некоторые изображения принимают формат 168x256x3, а другие принимают формат 166x256x3.

def process_image(image):

    size = 256, 256
    image.thumbnail(size, Image.ANTIALIAS)
    #image = image.crop((128 - 112, 128 - 112, 128 + 112, 128 + 112))
    npImage = np.array(image)
    npImage = npImage/255.

    return npImage

Я хочу, чтобы все изображения были одинакового размера.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Вы можете использовать .resize () для изменения размера изображений:

image.resize((256, 256), Image.ANTIALIAS) 

Первое число (256) - это ширина в пикселях.

Второе число (256) - это высота.в пикселях.

ANTIALIAS - это высококачественный фильтр понижающей дискретизации


Ваш новый код:

def process_image(image):

    size = 256, 256
    image.thumbnail(size, Image.ANTIALIAS)
    #image = image.crop((128 - 112, 128 - 112, 128 + 112, 128 + 112))

    image.resize((256, 256), Image.ANTIALIAS) 
    #resizes the image and gives it width and height of 256 pixels  

    npImage = np.array(image)
    npImage = npImage/255.

    return npImage
0 голосов
/ 14 апреля 2019

Функция миниатюр сохраняет соотношение сторон.Вы должны использовать функцию изменения размера

image.resize(size, Image.ANTIALIAS)
...