Исправление цветов с помощью матрицы коррекции цвета

В этом примере показано, как настроить цвета изображения, чтобы лучше соответствовать стандартизированному набору цветов на тестовом графике пространственной частотной характеристики ребра Imatest ® (eSFR).

Получите матрицу коррекции цвета из изображения тестового графика

Считайте изображение тестового графика.

I = imread('eSFRTestImage.jpg'); 

Создайте esfrChart объект, который хранит информацию о тестовом графике. Отобразите график, подсвечивая 16 цветовые закрашенные фигуры. Изображение имеет синий оттенок.

chart = esfrChart(I);
displayChart(chart,'displayEdgeROIs',false, ...
    'displayGrayROIs',false,'displayRegistrationPoints',false)

Figure eSFR test chart contains an axes. The axes contains 17 objects of type image, text.

Измерьте точность цвета 16 цветовых закрашенных фигур с помощью measureColor функция. Функция также возвращает матрицу коррекции цвета, которая используется для выполнения коррекции цвета.

[colorTable,ccm] = measureColor(chart);

Сравните измеренный и ссылочный цвета на цветовую закрашенную фигуру. Чем ближе Delta_E значение равно 1, тем менее ощутима различие цветов.

displayColorPatch(colorTable)

Figure Visual Color Comparison contains an axes. The axes contains 17 objects of type image, text.

Цвет - исправление изображения тестового графика

Цвет - исправьте исходный тест графика изображения и отобразите результат.

I_cc = imapplymatrix(ccm(1:3,:)',I,ccm(4,:));
imshow(I_cc)
title('Color-Corrected Image Using Color Patches')

Figure Visual Color Comparison contains an axes. The axes with title Color-Corrected Image Using Color Patches contains an object of type image.

Создайте esfrChart объект, который хранит информацию о цветокорректированном тестовом графике. Измерьте точность цвета 16 цветовых закрашенных фигур.

chart_cc = esfrChart(I_cc);
colorTable_cc = measureColor(chart_cc);

Сравните исправленные и ссылочные цвета на цветовую закрашенную фигуру. Измеренные цветовые ошибки, delta_E, меньше для исправленного по цвету изображения, чем для оригинального изображения. Поэтому цвета в этом изображении лучше согласуются с эталонными цветами. Однако теперь график имеет общий желтый оттенок, и контрастность изображения уменьшилась.

displayColorPatch(colorTable_cc)

Figure Visual Color Comparison contains an axes. The axes contains 17 objects of type image, text.

Улучшите коррекцию цвета, используя серые закрашенные фигуры

Вы можете улучшить коррекцию цвета, включив серые закрашенные фигуры, а также цвет, закрашенные фигуры в метод наименьших квадратов. Отобразите исходный график, подсвечивая 20 серые закрашенные фигуры и 16 цветные закрашенные фигуры.

displayChart(chart,'displayEdgeROIs',false, ...
    'displayRegistrationPoints',false)

Figure eSFR test chart contains an axes. The axes contains 37 objects of type image, text.

Получите ссылочные значения L * a * b * цветовых и полутоновых закрашенных фигур, которые хранятся в ReferenceColorLab и ReferenceGrayLab свойства объекта графика eSFR. Преобразуйте эти значения в цветовое пространство RGB.

referenceLab = [chart.ReferenceColorLab; chart.ReferenceGrayLab];
referenceRGB = lab2rgb(referenceLab,'outputtype','uint8');

Измерьте среднее значение серого в каждом из 20 серых закрашенных фигур с помощью measureNoise функция.

noiseTable = measureNoise(chart);
measuredGrayRGB = [noiseTable.MeanIntensity_R, ...
    noiseTable.MeanIntensity_G, ...
    noiseTable.MeanIntensity_B];

Сцепите все измеренные значения цвета RGB для цветовых и полутоновых закрашенных фигур.

measuredColorRGB = [colorTable.Measured_R, ...
    colorTable.Measured_G, ...
    colorTable.Measured_B];
measuredRGB = [measuredColorRGB; measuredGrayRGB];
ccm_cc = double([measuredRGB ones(36,1)]) \ double(referenceRGB);

Выполните коррекцию цвета и отобразите результат. График больше не имеет желтого оттенка, и общий внешний вид графика улучшился.

I_cc2 = imapplymatrix(ccm_cc(1:3,:)',I,ccm_cc(4,:)');
imshow(I_cc2)
title('Color-Corrected Image Using Gray and Color Patches')

Figure eSFR test chart contains an axes. The axes with title Color-Corrected Image Using Gray and Color Patches contains an object of type image.

Сравните исправленные и ссылочные цвета на цветовую закрашенную фигуру. Некоторые из измеренных цветовых ошибок уменьшились, в то время как другие увеличились.

chart_cc2 = esfrChart(I_cc2);
colorTable_cc2 = measureColor(chart_cc2);
displayColorPatch(colorTable_cc2)

Figure Visual Color Comparison contains an axes. The axes contains 17 objects of type image, text.

Ссылки

[1] Иматест®. «Esfr». https://www.imatest.com/mathworks/esfr/.

См. также

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте