При преобразовании изображений из RGB в LAB с помощью skimage.color.rgb2lab
я не могу найти документацию, диапазон значений которой может иметь каждый из трех каналов в образе лыж. Моя попытка с кодом ниже предлагает, что это будет [0.0, 9341.57]
для L
канала, [-6952.27, 7924.33]
для A
канала и [-8700.71, 7621.43]
для B
канала. Но, на мой взгляд, это не похоже на типичные значения LBA ([0, 100]
, [-170, 100]
, [-100, 150]
), которые можно найти в описаниях, и при этом соотношение чисел не кажется схожим, а также, как правило, они довольно странные. 'ищет диапазоны, которые, по-видимому, вообще ни к чему не нормализуются.
Итак, какие значения может иметь каждый канал изображения LBA, если он конвертируется в skimage
?
(И / или где моя ошибка ниже, попытайтесь определить их?)
# WARN: can take a while to calculate
import numpy as np
from skimage.color import rgb2lab
import multiprocessing as mp
colors = [[r,g,b] for r in range(256) for g in range(256) for b in range(256)]
imgs = np.zeros((16777216,1,1,3))
for i, color in enumerate(colors):
imgs[i,:,:] = color
labs = np.zeros((16777216,1,1,3))
pool = mp.Pool(mp.cpu_count()-1)
try:
labs = pool.map(rgb2lab, imgs)
except KeyboardInterrupt:
# without catching this here we will never be able to manually stop running in a sane way
pool.terminate()
pool.close()
pool.join()
print(np.min(labs[:,:,:,0]), np.max(labs[:,:,:,0]), np.min(labs[:,:,:,1]), np.max(labs[:,:,:,1]), np.min(labs[:,:,:,2]), np.max(labs[:,:,:,2]))
# 0.0 9341.570221995466 -6952.27373084052 7924.333617630548 -8700.709143439595 7621.42813486568