2015-06-16 2 views
4

Я пытаюсь уменьшить изображение (используя anti-aliasing) используя Python-Pillow's im.thumbnail() метод.Как создать эскизы с помощью opencv-python?

Мой код выглядит следующим образом:

MAXSIZE = 1024 
im.thumbnail(MAXSIZE, Image.ANTIALIAS) 

Можете ли вы сказать мне альтернативу в opencv-python, чтобы выполнить это изменение размера операции?

ответ

5

Вы можете использовать cv2.resize. Документация здесь: http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html#resize

В вашем случае, предполагая, что IM входного изображения является NumPy массив:

maxsize = (1024,1024) 
imRes = cv2.resize(im,maxsize,interpolation=cv2.CV_INTER_AREA) 

Существуют различные типы интерполяции доступны (INTER_CUBIC, INTER_NEAREST, INTER_AREA, ...), но в соответствии с документацию, если вам нужно уменьшить изображение, вы должны получить лучшие результаты с CV_INTER_AREA.

+1

cv2.resize изменит размер изображения, которое вы предоставите указанным размерам. Maxsize не является максимальным размером, это * целевой * размер. Вы можете использовать библиотеку python imutils.resize (удобные функции opencv). Он обертывает функцию cv2.resize, чтобы поддерживать пропорции изображения при изменении размера, однако оно также увеличит изображение, если предоставленное изображение меньше размера, которое вы предоставляете. Чтобы исправить это, вызовите его только в том случае, если изображение больше. – Chris

Смежные вопросы