Я пытаюсь преобразовать изображение PIL в массив, используя NumPy. Затем я хочу преобразовать этот массив в значения Lab, изменить значения, а затем преобразовать массив обратно в изображение и сохранить изображение. У меня есть следующий код:
import Image, color, numpy
# Open the image file
src = Image.open("face-him.jpg")
# Attempt to ensure image is RGB
src = src.convert(mode="RGB")
# Create array of image using numpy
srcArray = numpy.asarray(src)
# Convert array from RGB into Lab
srcArray = color.rgb2lab(srcArray)
# Modify array here
# Convert array back into Lab
end = color.lab2rgb(srcArray)
# Create image from array
final = Image.fromarray(end, "RGB")
# Save
final.save("out.jpg")
Этот код зависит от PIL, NumPy и цвета. цвет можно найти в тубе SciPy здесь. Я загрузил файл color.py вместе с некоторыми colordata.txt файлами. Я изменил color.py так, чтобы он мог запускаться независимо от источника SciPy, и все кажется, что он работает нормально - значения в массиве меняются при выполнении преобразований.
Моя проблема в том, что когда я запускаю приведенный выше код, который просто преобразует изображение в Lab, а затем обратно в RGB и сохраняет его, я возвращаю следующее изображение:
Что происходит не так? Является ли это тем, что я использую функции color.py?
Для справки:
Изображение источника - face-him.jpg
Все исходные файлы, необходимые для тестирования - colour-test.zip