В этом примере показано, как настроить цвета изображения, чтобы лучше соответствовать, стандартизированный набор цветов на ребре пространственной частотной характеристике (eSFR) Imatest® тестируют график.
Считайте изображение тестового графика.
I = imread('eSFRTestImage.jpg');
Создайте esfrChart
объект, который хранит информацию о тестовом графике. Отобразите график, подсветив эти 16 цветовых полей. Изображение имеет синий оттенок.
chart = esfrChart(I); displayChart(chart,'displayEdgeROIs',false, ... 'displayGrayROIs',false,'displayRegistrationPoints',false)
Измерьте точность цветопередачи этих 16 цветовых полей при помощи measureColor
функция. Функция также возвращает матрицу коррекции цвета, которая используется, чтобы выполнить коррекцию цвета.
[colorTable,ccm] = measureColor(chart);
Сравните измеренные и ссылочные цвета на схеме цветового поля. Ближе Delta_E
значение к 1, менее заметное, которое цветовое различие.
displayColorPatch(colorTable)
Цветной правильный исходное тестовое изображение графика и отображают результат.
I_cc = imapplymatrix(ccm(1:3,:)',I,ccm(4,:));
imshow(I_cc)
title('Color-Corrected Image Using Color Patches')
Создайте esfrChart
объект, который хранит информацию об откорректированном цветом тестовом графике. Измерьте точность цветопередачи 16 откорректированных цветом цветовых полей.
chart_cc = esfrChart(I_cc); colorTable_cc = measureColor(chart_cc);
Сравните откорректированные и ссылочные цвета на схеме цветового поля. Измеренные цветные ошибки, delta_E
, меньше для откорректированного цветом изображения, чем для оригинального изображения. Поэтому цвета в этом изображении лучше соглашаются со ссылочными цветами. Однако график теперь имеет полный желтый оттенок, и контраст изображения уменьшился.
displayColorPatch(colorTable_cc)
Можно улучшить коррекцию цвета включением серых закрашенных фигур, а также цветовых полей в методе наименьших квадратов. Отобразите исходный график, подсветив 20 серых закрашенных фигур и 16 цветовых полей.
displayChart(chart,'displayEdgeROIs',false, ... 'displayRegistrationPoints',false)
Получите ссылочный 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')
Сравните откорректированные и ссылочные цвета на схеме цветового поля. Некоторые измеренные цветные ошибки уменьшились, в то время как другие увеличились.
chart_cc2 = esfrChart(I_cc2); colorTable_cc2 = measureColor(chart_cc2); displayColorPatch(colorTable_cc2)
[1] Imatest®. "Esfr". https://www.imatest.com/mathworks/esfr/.
esfrChart
| measureColor
| displayColorPatch
| plotChromaticity