, примените CCM, а затем повторно примените гамма-коррекцию с

я есть 24-цветная цветовая карта, и я пытаюсь оценить матрицу цветовой коррекции для снятых изображений с помощью указанной цветовой карты. Я вручную оценилCCM с помощьюleast squares метод, и он не дает желаемых результатов. Некоторые изображения приобретают странный оттенок после нанесенияCCM.
Я дважды проверил свой код, но не смог найти никаких глюков. Я ищу любые opencv / matlab или любые реализации с открытым исходным кодом, где я могу предоставить захваченные значения цвета и фактические значения цвета, и он может рассчитать и применить CCM для меня, чтобы убедиться, что у моей реализации есть проблемы или меньше всего Метод квадратов не очень эффективен.

Примечание: я не применяю линеаризацию к изображению перед применением CCM. Пожалуйста, предложите любые ресурсы, где это можно быстро проверить.

PS: Ниже приведен код MATLAB, который я использую для оценки и применения матрицы коррекции цвета (CCM).

% calc 3x3 correction matrix
ccm = MactAll * MrawAll' * inv(MrawAll * MrawAll') % MactAll is the 3x24 matirx of actual color card values and MrawAll is the 3x24 matrix of captured color card values

вот как я применяю СКК к изображению

[my, mx, mc] = size(imageRGB);  % rows, columns, colors (3) % 
imageRGB = reshape(imageRGB,my*mx,mc); 
correctedRGB = imageRGB*ccm;  
correctedRGB = min(correctedRGB,1);  correctedRGB = max(correctedRGB,0);  % Place limits on output.

correctedRGB = reshape(correctedRGB, my, mx, mc); 
correctedRGB = uint8(correctedRGB*255);

Вот мои результаты:

Исходное изображение

Исправленное изображение

Ответы на вопрос(2)

Ваш ответ на вопрос