В этом примере показано, как выполнить стандартные измерения качества на тестовом графике пространственной частотной характеристики ребра Imatest ® (eSFR). Измеренные свойства включают резкость, хроматическую аберрацию, шум, освещенность и точность цвета.
Считайте изображение графика eSFR в рабочую область. Отобразите график.
I = imread('eSFRTestImage.jpg'); figure imshow(I) title('Captured Image of eSFR Chart') text(size(I,2),size(I,1)+15, ... ['Chart courtesy of Imatest',char(174)],'FontSize',10,'HorizontalAlignment','right');
Создайте объект тестового графика eSFR, который автоматически задает видимые области (ROIs) на основе обнаруженных маркеров регистрации.
chart = esfrChart(I);
Выделите и пометьте обнаруженные ROIs, чтобы визуально подтвердить, что ROIs подходят для измерений.
displayChart(chart)
Все 60 наклонные ребра ROI (отмеченных зеленым цветом) видны и центрированы на соответствующих ребрах. В сложение 20 серых закрашенных фигур ROI (маркированных красным цветом) и 16 цветных патчей ROI (маркированных белым цветом) видны и содержатся в контуре каждой закрашенной фигуры. График правильно импортирован.
Измерьте резкость всех 60 наклонных краевых ROIs. Также измерьте усредненную горизонтальную и вертикальную резкость этих ROIs.
[sharpnessTable,aggregateSharpnessTable] = measureSharpness(chart);
Отображение графика SFR для первых четырех ROIs.
plotSFR(sharpnessTable,'ROIIndex',1:4,'displayLegend',false,'displayTitle',true)
Отобразите среднее значение SFR для усреднённых вертикальных и горизонтальных ребер. Вертикальное среднее значение SFR падает быстрее, чем среднее значение горизонтальный SFR. Поэтому среднее вертикальное ребро менее острая, чем среднее горизонтальное ребро.
plotSFR(aggregateSharpnessTable)
Измерьте хроматическую аберрацию во всех наклонных краевых ROIs.
chTable = measureChromaticAberration(chart);
Постройте график нормированной интенсивности трех цветовых каналов в первом информация только для чтения. Сохраните нормированный профиль ребра в отдельной переменной, edgeProfile
, для ясности.
roi_index = 1; edgeProfile = chTable.normalizedEdgeProfile{roi_index}; figure p = length(edgeProfile.normalizedEdgeProfile_R); plot(1:p,edgeProfile.normalizedEdgeProfile_R,'r', ... 1:p,edgeProfile.normalizedEdgeProfile_G,'g', ... 1:p,edgeProfile.normalizedEdgeProfile_B,'b') xlabel('Pixel') ylabel('Normalized Intensity') title(['ROI ' num2str(1) ' with Aberration ' num2str(chTable.aberration(1))])
Цветовые каналы имеют сходные нормированные профили интенсивности, и по ребру видно не так много цветовой окантовки.
Измерьте шум с помощью 20 серых закрашенных фигур ROIs.
noiseTable = measureNoise(chart);
Постройте график среднего значения необработанного сигнала и отношения сигнал/шум (ОСШ) в каждой полутоновой информации только для чтения.
figure subplot(1,2,1) plot(noiseTable.ROI,noiseTable.MeanIntensity_R,'r', ... noiseTable.ROI,noiseTable.MeanIntensity_G,'g', ... noiseTable.ROI,noiseTable.MeanIntensity_B,'b') title('Signal') ylabel('Intensity') xlabel('Gray ROI Number') grid on subplot(1,2,2) plot(noiseTable.ROI,noiseTable.SNR_R,'r', ... noiseTable.ROI,noiseTable.SNR_G,'g', ... noiseTable.ROI,noiseTable.SNR_B,'b') title('SNR') ylabel('dB') xlabel('Gray ROI Number') grid on
Оцените освещенность сцены, используя 20 серых закрашенная фигура ROIs. Осветитель имеет более сильный синий компонент более слабый красный компонент, что согласуется с синим оттенком изображения тестового графика.
illum = measureIlluminant(chart)
illum = 1×3
110.9147 116.0008 123.2339
Измерьте точность цвета с помощью 16 цветовых патчей ROIs.
[colorTable,ccm] = measureColor(chart);
Отображение среднего измеренного цвета и ожидаемого цвета ROIs. Отобразите измерение точности цвета, Delta_E
. Чем ближе Delta_E
значение равно 1, тем менее ощутима различие цветов. Типичные значения Delta_E
область значений от 3 до 6 для печати, и до 20 в других коммерческих применениях.
figure displayColorPatch(colorTable)
Постройте график измеренных и эталонных цветов в цветовом пространстве CIE 1976 L * a * b * на цветовой схеме. Красные круги указывают на ссылку цвет. Зеленые круги указывают измеренный цвет каждой цветовой закрашенной фигуры.
figure plotChromaticity(colorTable)
Можно использовать матрицу коррекции цвета, ccm
, чтобы исправить цвет изображений тестового графика. Для получения примера смотрите Правильные Цвета Используя Матрицу Коррекции Цвета.
[1] Иматест®. «Esfr». https://www.imatest.com/mathworks/esfr/.
displayChart
| esfrChart
| measureChromaticAberration
| measureColor
| measureIlluminant
| measureNoise
| measureSharpness