Я хочу изменить размер изображения в соответствии с форматом меньшего размера. Например, я хотел бы изменить размер изображения размером 100x100 пикселей на изображение размером 58x58 пикселей. Значениями массива являются значения интенсивности или потока. Я хочу, чтобы полная трансформация изображения сохранялась после преобразования. Это не работает с изменением размера изображения. Мое общее значение уменьшается в зависимости от того, какой коэффициент I масштабируется или уменьшаться. Я показал ниже код, который я пробовал до сих пор.изменение размера обрезки общая сумма массива
import numpy as np
from skimage.transform import resize
image=fits.open(directory+file1)
cutout=image[0].data
out = resize(cutout, (58,58), order=1, preserve_range=True)
print(np.sum(out),np.sum(cutout))
Мой вывод:
0.074657436655 0.22187 (I want these two values to be equal)
Если я растягивать его на той же размерности с помощью:
out = resize(cutout, (100,100), order=1, preserve_range=True)
print(np.sum(out),np.sum(cutout))
Мой выход очень близко к тому, что я хочу:
0.221869631852 0.22187
У меня такая же проблема, если я пытаюсь увеличить а также размер изображения.
out = resize(cutout, (200,200), order=1, preserve_range=True)
print(np.sum(out),np.sum(cutout))
Выход:
0.887316320731 0.22187
Я хотел бы знать, если есть обходной путь для этой проблемы.
EDIT 1:
Я просто понял, что если я умножить мое изображение на квадрат шкалы которого я хочу, чтобы увеличить или уменьшить размер моего изображения, то моя общая сумма сохраняется.
Например:
x=58
out = resize(cutout, (x,x), order=1, preserve_range=True)
test=out*(100/x)**2
print(np.sum(test),np.sum(cutout))
Мой выход очень близко к тому, что я хочу, но немного выше:
0.221930548915 0.22187
Я попытался это с разными размерами и он работает на самом деле, за исключением малых значений. Может ли кто-нибудь объяснить, почему это отношение истинно или это просто статистическое совпадение.
почему не только перенормировки интенсивности после масштабирования? – maxymoo
Должен ли я нормализовать свою интенсивность как квадрат моего масштабирующего фактора? Если это так, можете ли вы сказать мне, почему это отношение верно? – Vishnu
Вы можете посмотреть: http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.downscale_local_mean –