measureSharpness

Измерьте пространственную частотную характеристику с помощью графика Imatest eSFR

Описание

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

пример

sharpnessTable = measureSharpness(chart,Name,Value) измеряет швейцарский франк во всех заданных наклонных ROI ребра, задавая дополнительные параметры.

[sharpnessTable,aggregateSharpnessTable] = measureSharpness(___) также возвращает средний швейцарский франк вертикальных и горизонтальных 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 object. The axes object 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. Отобразите график швейцарского франка ROI.

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

Figure SFR Plots for ROI 28 contains an axes object. The axes object 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. Эти измерения соглашаются с визуальным осмотром графика швейцарского франка, на котором значение швейцарского франка 0,7 происходит на пространственных частотах приблизительно 0,2 пары линии на пиксель.

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

    0.1906    0.2036    0.1959    0.2001

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

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

    0.2619    0.2726    0.2613    0.2697

Входные параметры

свернуть все

eSFR строят диаграмму в виде esfrChart объект.

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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 выходные аргументы. Столбцы указывают на частоту, на которой швейцарский франк спадает до заданного процента начальных и пиковых значений. Например, когда PercentResponse имеет значение 50, обе выходных таблицы имеют столбцы MTF50 и MTF50P. Эти столбцы указывают на частоту, на которой швейцарский франк спадает до 50% начального значения и пикового значения, соответственно.

Пример: 30

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

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

свернуть все

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

ПеременнаяОписание
ROIИндекс произведенного ROI. Значение ROI целое число в области значений [1, 60].
slopeAngleУгол между наклонным ребром и чистой вертикалью или горизонтальный, в зависимости от ориентации ROI. Угол измеряется в градусах, и он возвращен как скаляр типа 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 добавляют два столбца, которые указывают на частоту, на которой швейцарский франк спадает до заданного процента начального и пикового значения. Формат каждой записи в столбце является вектором 1 на 4. Эти четыре элемента соответствуют красному, зеленому, синему цвету, и каналы яркости, соответственно.

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

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

ПеременнаяОписание
OrientationОриентация усредненного SFRs. Значение Orientation любой 'horizontal' или 'vertical'.
SFR

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

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

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

Y = 0.213R + 0.715G + 0.072B

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

Советы

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

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

Алгоритмы

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

Ссылки

[2] Записи, Питер. "Slanted-Edge MTF для Анализа Цифрового фотоаппарата и Сканера". Общество Обработки изображений Науки и техники; Продолжения Обработки изображений, Качества изображения, Системной Конференции по Захвату изображения. Портленд, Орегон, март 2000, стр 135–138.

[3] Записи, Питер. "sfrmat3: оценка швейцарского франка для цифровых фотоаппаратов и сканеров". URL: http://losburns.com/imaging/software/SFRedge/sfrmat3_post/index.html.

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