exponenta event banner

measureSharpness

Измерение пространственной частотной характеристики по диаграмме Imatest eSFR

Описание

sharpnessTable = measureSharpness(chart) измеряет пространственную частотную характеристику (SFR) во всех наклонных краевых областях интересов (ROI) диаграммы Imatest ® eSFR [1]. Возвращаемая таблица резкости включает частоту для каждого ROI, при которой отклик падает до 50% от начального и пикового значений.

пример

sharpnessTable = measureSharpness(chart,Name,Value) измеряет SFR на всех указанных ROI наклонного края, указывая дополнительные параметры.

[sharpnessTable,aggregateSharpnessTable] = measureSharpness(___) также возвращает среднее значение SFR вертикального и горизонтального ROI, используя входные аргументы любого из предыдущих синтаксисов.

Примеры

свернуть все

Считывание изображения диаграммы eSFR в рабочую область.

I = imread('eSFRTestImage.jpg');

Создание esfrChart затем отобразите диаграмму с аннотациями ROI. 60 наклонных краевых ROI помечены зелеными номерами.

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

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

Измерьте резкость кромки в ROI 25-28 и верните измерения в sharpnessTable. Включить измерения MTF70 и MTF30, указав 'percentResponse' аргумент пары имя-значение.

sharpnessTable = measureSharpness(chart,'ROIIndex',25:28,'PercentResponse',[70 30])
sharpnessTable=4×9 table
    ROI    slopeAngle    confidenceFlag        SFR           comment                          MTF70                                           MTF70P                                        MTF30                                       MTF30P                 
    ___    __________    ______________    ____________    ____________    ____________________________________________    ____________________________________________    ________________________________________    ________________________________________

    25       4.2268          true          {85x5 table}    {0x0 double}    0.061637    0.059828    0.053096    0.059827    0.061637    0.059828    0.053096    0.059827      0.107     0.1118    0.11037    0.11082      0.107     0.1118    0.11037    0.11082
    26       5.0814          true          {85x5 table}    {0x0 double}     0.18553     0.18604     0.18528     0.18562     0.18553     0.18604     0.18528     0.18562    0.26282    0.26497    0.26211    0.26385    0.26282    0.26497    0.26211    0.26385
    27       4.7787          true          {85x5 table}    {0x0 double}    0.069499     0.06935    0.063808     0.06899    0.069499     0.06935    0.063808     0.06899    0.21579    0.21794    0.21785    0.21775    0.21579    0.21794    0.21785    0.21775
    28       4.7966          true          {85x5 table}    {0x0 double}     0.19057     0.20361     0.19589     0.20006     0.19057     0.20341     0.19565     0.20006    0.26185    0.27258    0.26126    0.26972    0.26185    0.27241    0.26118    0.26972

Выберите четвертую строку в таблице резкости, которая соответствует ROI 28. Просмотрите график SFR ROI.

idx = 4;
plotSFR(sharpnessTable(idx,:))

Figure SFR Plots for ROI 28 contains an axes. The axes with title ROI 28 contains 8 objects of type line. These objects represent Red Channel, Green Channel, Blue Channel, Luminance Channel, Red Channel Beyond Nyquist, Green Channel Beyond Nyquist, Blue Channel Beyond Nyquist, Luminance Channel Beyond Nyquist.

Распечатайте MTF70 и MTF30 измерения ROI. Сравните измерения с графиком.

Измерение MTF70 красного и синего цветовых каналов немного меньше 0,2, в то время как измерение MTF70 зеленого и светового каналов немного больше 0,2. Эти измерения согласуются с визуальным осмотром графика SFR, на котором значение SFR 0,7 встречается на пространственных частотах вокруг 0,2 пар линий на пиксель.

mtf70 = sharpnessTable.MTF70(idx,:)
mtf70 = 1×4

    0.1906    0.2036    0.1959    0.2001

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

mtf30 = sharpnessTable.MTF30(idx,:)
mtf30 = 1×4

    0.2619    0.2726    0.2613    0.2697

Входные аргументы

свернуть все

Диаграмма eSFR, указанная как esfrChart объект.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'ROIIndex',2 измеряет резкость только ROI 2.

Индексы ROI для включения в измерения, определяемые как разделенная запятыми пара, состоящая из 'ROIIndex' и скаляр или вектор целых чисел в диапазоне [1, 60]. Индексы соответствуют номерам ROI, отображаемым displayChart.

Примечание

measureSharpness использует пересечение значений ROI, указанных 'ROIIndex' и 'ROIOrientation'.

Пример: 29:32

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Ориентация ROI, указанная как разделенная запятыми пара, состоящая из 'ROIOrientation' и 'both', 'vertical', или 'horizontal'. measureSharpness функция выполняет измерения только для ROI с заданной ориентацией.

Примечание

measureSharpness использует пересечение значений ROI, указанных 'ROIIndex' и 'ROIOrientation'.

Пример: 'vertical'

Типы данных: char | string

Значение частотной характеристики, при которой сообщается соответствующая пространственная частота, указанная как разделенная запятыми пара, состоящая из 'PercentResponse' и скаляр или вектор целых чисел в диапазоне [1, 100].

Каждое значение PercentResponse добавляет два столбца к sharpnessTable и aggregateSharpnessTable выходные аргументы. Столбцы указывают частоту, с которой SFR падает до заданного процента от начального и пикового значений. Например, когда PercentResponse имеет значение 50, обе выходные таблицы имеют столбцы MTF50 и MTF50P. Эти столбцы указывают частоту, при которой SFR падает до 50% от начального значения и пикового значения соответственно.

Пример: 30

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Выходные аргументы

свернуть все

Измерения SFR краев, возвращенные в виде таблицы m-by-n. m - количество выборок ROI. n изменяет значения в зависимости от PercentResponse. Первые пять столбцов всегда присутствуют и представляют следующие переменные:

ПеременнаяОписание
ROIИндекс выборки ROI. Значение ROI - целое число в диапазоне [1, 60].
slopeAngleУгол между наклонной кромкой и чисто вертикальной или горизонтальной в зависимости от ориентации окупаемости инвестиций. Угол измеряется в градусах и возвращается как скаляр типа double.
confidenceFlag

Логический флаг, указывающий, является ли измерение резкости надежным. confidenceFlag является true когда измерение является надежным. confidenceFlag является false когда измерение ненадежно из-за следующих условий:

  • slopeAngle менее 3,5 градусов или более 15 градусов.

  • Контраст внутри ROI составляет менее 20%.

Контраст наклонного края ROI определяется как 100 * (IHigh - ILow)/(IHigh + ILow), где IHigh и ILow - оценочные средние интенсивности областей высокой и низкой интенсивности по краю. Контраст вычисляется только для красного канала.

SFR

Пространственная частотная характеристика края в ROI. SFR является таблицей f-by-5. Пять столбцов представляют значение частоты и значения красного, зеленого, синего и яркости, соответствующие этой частоте. f - число частотных выборок MTF.

Яркость (Y) представляет собой линейную комбинацию красного (R), зеленого (G) и синего (B) каналов согласно:

Y = 0.213R + 0.715G + 0.072B

commentКогда confidenceFlag является false, то comment описывает причину ненадежности измерений. Когда confidenceFlag является true, то comment - пустой вектор, [].

Каждое значение PercentResponse добавляет два столбца, которые указывают частоту, с которой SFR падает до заданного процента от начального и пикового значения. Формат каждой записи в столбце - вектор 1 на 4. Четыре элемента соответствуют красному, зеленому, синему и яркостному каналам соответственно.

Средние измерения SFR вертикальных и горизонтальных краев, возвращаемые в виде таблицы с одной или двумя строками. aggregateSharpnessTable имеет одну строку, когда все выборки ROI имеют одинаковую ориентацию. Он имеет две строки, когда отобранные ROI имеют смешанную ориентацию. aggregateSharpnessTable имеет на три столбца меньше, чем sharpnessTable.

Первые два столбца aggregateSharpnessTable всегда присутствуют и представляют следующие переменные:

ПеременнаяОписание
OrientationОриентация усредненных SFR. Значение Orientation является либо 'horizontal' или 'vertical'.
SFR

Усредненная пространственная частотная характеристика всех краев во включенных ROI с ориентацией, указанной Orientation.

SFR является таблицей s-by-5. Пять столбцов представляют значение частоты и усредненные значения красного, зеленого, синего и яркости, соответствующие этой частоте. s - число частотных выборок MTF.

Яркость (Y) вычисляется как линейная комбинация красного (R), зеленого (G) и синего (B) каналов согласно:

Y = 0.213R + 0.715G + 0.072B

Каждое значение PercentResponse добавляет два столбца, которые указывают частоту, с которой SFR падает до заданного процента от начального и пикового значения. Формат каждой записи в столбце - вектор 1 на 4. Четыре элемента соответствуют красным, зеленым, синим и яркостным каналам, усредненным среди всех дискретизированных ROI с одинаковой ориентацией.

Совет

  • Наклонные края на правильно ориентированной диаграмме расположены под углом 5 градусов от горизонтали или вертикали. Измерения резкости не точны, когда ориентация кромки значительно отклоняется от 5 градусов.

  • Резкость выше к центру изображаемой области и уменьшается к периферии. Резкость по горизонтали обычно выше резкости по вертикали.

Алгоритмы

Алгоритм измерения SFR основан на работе Питера Бернса [2] . Во-первых,[3] measureSharpness определяет положение края с разрешением под-пикселей для каждой строки сканирования или строки или столбца пикселей, перпендикулярных краю, в ROI. Например, каждая строка пикселей является линией сканирования для края, близкого к вертикали. Далее, measureSharpness выравнивает и усредняет линии сканирования для создания профиля интенсивности краев с избыточной выборкой. Функция принимает производную от профиля интенсивности и применяет оконную функцию. Возвращенное измерение SFR является абсолютным значением преобразования Фурье оконной производной.

Ссылки

[1] Имитация. «Эсфр.» https://www.imatest.com/mathworks/esfr/.

[2] Бернс, Питер. «Наклонно-граничный MTF для анализа цифровых камер и сканеров». Общество науки и техники визуализации; Работа конференции по обработке изображений, качеству изображений, системам захвата изображений. Портленд, Орегон, март 2000 года, стр. 135-138.

[3] Бернс, Питер. «sfrmat3: SFR оценка для цифровых камер и сканеров». URL: http://losburns.com/imaging/software/SFRedge/sfrmat3_post/index.html.

Представлен в R2017b