Подобно логике, используемой плагином GIMP, упомянутой в ответе Roflo, вы также можете использовать цветное изображение для раскрашивания изображения в оттенках серого. Затем вы сначала приблизительно выравниваете две картинки (например, Hugin ). Затем возьмите цветное изображение, преобразуйте его в цветовое пространство XYZ и попытайтесь сопоставить значения серого в каналах X и Z со значениями серого в канале Y. Для этого необходимо разделить изображение на области одинакового цвета, создать маски для каждой области и просто разделить каналы X и Z по каналу Y, чтобы сделать это грубым образом. Прилагая больше усилий, вы можете лучше справиться с задачей, разделив изображение для каждого региона в соответствии с диапазонами в Y, а затем сделав различные подборки для X и Z.
Следующим шагом является использование подгонки для раскрашивания черно-белого изображения. Сначала вы преобразуете это в линейное цветовое пространство, разделите его на те же области, что и на цветном изображении (вам может понадобиться настроить выравнивание, если оно слишком далеко). Затем вы нормализуете среднее значение серого для каждой области, чтобы оно соответствовало среднему значению Y цветного изображения, и затем вы применяете отображение для вычисления X и Z. и добавляете эти каналы к изображению. Наконец, вы возвращаете нормализацию обратно к тому, что было (тогда X, Y и Z масштабируются с одинаковым коэффициентом). Когда вы закончите со всеми регионами, вы объедините все части, а затем преобразуете изображение из XYZ в sRGB.