Это зависит от того, как вы сравниваете результаты. Например, при использовании Matplotlib вы должны получить нормированный минимум / максимум по умолчанию. Давайте рассмотрим следующий пример:
from matplotlib import pyplot as plt
import numpy as np
plt.figure(1, figsize=(12, 5))
# Original data/image
IMG = np.genfromtxt('test.csv', delimiter=',')
plt.subplot(1, 2, 1), plt.imshow(IMG), plt.colorbar()
# Min/max normalized data/image
IMG = IMG - np.min(IMG)
IMG = IMG / np.max(IMG)
plt.subplot(1, 2, 2), plt.imshow(IMG), plt.colorbar()
plt.tight_layout()
plt.show()
Это будет вывод:
Как видите, по умолчанию выход Matplotlib (слева), а также вывод явно / минимально нормированных данных / изображений (справа) равны.
Кроме того, представленная нормализация мин / макс должна быть такой, какая вы есть ищу.
Надеюсь, что поможет!
-----------------------
System information
-----------------------
Python: 3.8.1
Matplotlib: 3.2.0rc1
NumPy: 1.18.1
-----------------------
РЕДАКТИРОВАТЬ: После уточнения в комментарии, я думаю, используя vmin
и vmax
параметры в Matplotlib imshow
могут быть простейшим способом go:
from matplotlib import pyplot as plt
import numpy as np
def plot_scaled(data, min_scale, max_scale):
plt.imshow(data, vmin=min_scale, vmax=max_scale), plt.colorbar()
# Original data/image
IMG = np.genfromtxt('test.csv', delimiter=',')
# Artificial data
IMG_large = IMG + 10
IMG_even_larger = IMG + 100
plt.figure(1, figsize=(15, 4))
for i, img in enumerate([IMG, IMG_large, IMG_even_larger]):
plt.subplot(1, 3, i+1), plot_scaled(img, 0, 200)
plt.tight_layout()
plt.show()
Значение 100 имеет одинаковый цвет на всех трех графиках .