Как уменьшить размер изображения при обработке изображений (scipy / numpy/python)

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

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

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

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


изменить:

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

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

спасибо

3 ответов


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


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

import scipy.misc

i_width = 640
i_height = 480

scipy.misc.imresize(original_image, (i_height, i_width))

используйте функцию масштабирования из 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)