measureSharpness

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

Описание

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

пример

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

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

Примеры

свернуть все

Считайте изображение графика eSFR в рабочую область.

I = imread('eSFRTestImage.jpg');

Создайте esfrChart затем отобразите график с аннотациями информация только для чтения. 60 наклонных краевых ROIs маркированы зелеными номерами.

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.

Измерьте резкость ребра в ROIs 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 измерения информация только для чтения. Сравните измерения с графиком.

Измерение 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.

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

Примечание

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

Пример: 29:32

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

Ориентация информация только для чтения, заданная как разделенная разделенными запятой парами, состоящая из 'ROIOrientation' и 'both', 'vertical', или 'horizontal'. The 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 - количество выборочных ROIs. n изменяет значения в зависимости от PercentResponse. Первые пять столбцов всегда присутствуют и представляют эти переменные:

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

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

  • slopeAngle менее 3,5 степени или более 15 степени.

  • Контраст в информация только для чтения составляет менее 20%.

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

SFR

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

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

Y = 0.213 R + 0.715 G + 0.072 B

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

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

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

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

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

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

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

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

Y = 0.213 R + 0.715 G + 0.072 B

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

Совет

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

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

Алгоритмы

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

Ссылки

[1] Иматест. «Esfr». 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
Для просмотра документации необходимо авторизоваться на сайте