Я пытаюсь преобразовать изображение 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 и color. цвет можно найти в стволе SciPy здесь . Я загрузил файл color.py вместе с некоторыми файлами colordata .txt а>. Я изменил color.py так, чтобы он мог работать независимо от источника SciPy, и все, кажется, работает нормально - значения в массиве меняются, когда я запускаю преобразования.
Моя проблема в том, что когда я запускаю приведенный выше код, который просто преобразует изображение в Lab, затем обратно в RGB и сохраняет его, я получаю следующее изображение:
Что не так? Это факт, что я использую функции из color.py?
Для справки:
Исходное изображение - face-him.jpg
Все исходные файлы, необходимые для тестирования - colour-test.zip
asarray
,swapaxes
и т. д.). Изменены первые две строки color.py наimport numpy as sb
иimport numpy as scipy
. - person Nick T   schedule 12.07.2010