Как уменьшить размер изображения при обработке изображения (scipy / numpy / python) - PullRequest
11 голосов
/ 22 мая 2011

Здравствуйте, у меня есть изображение (1024 x 1024), и я использовал команду "fromfile" в numpy, чтобы поместить каждый пиксель этого изображения в матрицу.

Как уменьшить размер изображения (например,до 512 x 512) путем изменения этой матрицы a?

a = numpy.fromfile(( - path - ,'uint8').reshape((1024,1024))

Я понятия не имею, как изменить матрицу a, чтобы уменьшить размер изображения.Так что если у кого-то есть идеи, пожалуйста, поделитесь своими знаниями, и я буду признателен.Спасибо


РЕДАКТИРОВАТЬ:

Когда я смотрю на результат, я обнаружил, что читатель получил прочитанное изображение и поместил его в «матрицу».Поэтому я изменил «массив» на матрицу.

Хосе сказал мне, что я могу взять только четные столбцы и даже строки и поместить их в новую матрицу.Это уменьшит изображение до половины размера.Какую команду в scipy / numpy мне нужно использовать для этого?

Спасибо

Ответы [ 3 ]

20 голосов
/ 16 августа 2016

Если вы хотите изменить размер до определенного разрешения, используйте scipy.misc.imresize:

import scipy.misc

i_width = 640
i_height = 480

scipy.misc.imresize(original_image, (i_height, i_width))
15 голосов
/ 22 мая 2011

Используйте функцию увеличения от scipy:

http://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.zoom.html#scipy.ndimage.zoom

from scipy.ndimage.interpolation import zoom
a = np.ones((1024, 1024))
small_a = zoom(a, 0.5)
2 голосов
/ 22 мая 2011

Я думаю, что самый простой способ - взять только несколько столбцов и несколько строк изображения. Делаем образец массива. Возьмем, к примеру, только те четные строки и четные столбцы, поместите его в новый массив, и у вас будет новое изображение в половину размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...