Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

measureSharpness

Mida la respuesta de frecuencia espacial usando Imatest® Gráfico de eSFR

Descripción

sharpnessTable = measureSharpness(chart) la respuesta de frecuencia espacial (SFR) en todas las regiones de borde de interés (ROI) Imatest® Gráfico eSFR extendido. incluye la frecuencia de cada ROI en la que la respuesta cae al 50% de los valores iniciales y máximos.sharpnessTable

ejemplo

sharpnessTable = measureSharpness(chart,Name,Value) mide el SFR en todos los ROI de borde slanado especificados, especificando parámetros adicionales.

[sharpnessTable,aggregateSharpnessTable] = measureSharpness(___) también devuelve el SFR medio de los ROI verticales y horizontales, utilizando los argumentos de entrada de cualquiera de las sintaxis anteriores.

Ejemplos

contraer todo

Lea una imagen de un gráfico de eSFR en el espacio de trabajo.

I = imread('eSFRTestImage.jpg');

Cree un objeto y, a continuación, muestre el gráfico con anotaciones de ROI.esfrChart Los 60 ROI de borde eslanado están etiquetados con números verdes.

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

Mida la nitidez del borde en los ROI 25-28 y devuelva las mediciones en .sharpnessTable Incluya las mediciones de MTF70 y MTF30 especificando el argumento de par nombre-valor.'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.2391          true          {88x5 table}    {0x0 double}    0.060224    0.058884    0.051757    0.058482    0.060224    0.058884    0.051757    0.058482    0.10732    0.11267    0.11185    0.11178    0.10732    0.11267    0.11185    0.11178
    26       5.0254          true          {88x5 table}    {0x0 double}     0.18561     0.18597     0.18667     0.18597     0.18561     0.18597     0.18667     0.18597    0.26028    0.26236    0.26224    0.26241    0.26028    0.26236    0.26224    0.26241
    27       4.7131          true          {88x5 table}    {0x0 double}    0.070042    0.069599    0.066239     0.06951    0.070042    0.069599    0.066239     0.06951     0.2169    0.21863    0.22086    0.21904     0.2169    0.21863    0.22086    0.21904
    28       4.8996          true          {88x5 table}    {0x0 double}     0.19485     0.20418     0.19669     0.20168     0.19485     0.20418     0.19658     0.20168    0.26447    0.27531    0.26004    0.27188    0.26447    0.27531    0.25998    0.27188

Seleccione la cuarta fila de la tabla de nitidez, que corresponde al ROI 28. Muestra la gráfica SFR del ROI.

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

Imprima las mediciones MTF70 y MTF30 del ROI. Compare las medidas con la gráfica.

La medición MTF70 de los canales de color rojo y azul es ligeramente menor que 0,2, mientras que la medición MTF70 de los canales verde y de luminancia es ligeramente mayor que 0,2. Estas mediciones coinciden con una inspección visual de la gráfica SFR, en la que se produce un valor SFR de 0,7 en frecuencias espaciales alrededor de 0,2 pares de líneas por píxel.

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

    0.1949    0.2042    0.1967    0.2017

La medición MTF30 del canal de color azul es notablemente más pequeña que la medición MTF30 de los otros canales de color. Esta medición coincide con una inspección visual de la gráfica SFR, en la que la curva SFR del canal azul cae más rápidamente que los otros canales.

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

    0.2645    0.2753    0.2600    0.2719

Argumentos de entrada

contraer todo

gráfico eSFR, especificado como un objeto.esfrChart

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: mide la nitidez sólo del ROI 2.measureSharpness(myChart,'ROIIndex',2)

Los índices de ROI se incluirán en las mediciones, especificados como el par separado por comas que consta de un escalar o vector de enteros en el rango [1, 60].'ROIIndex' Los índices coinciden con los números de ROI mostrados por .displayChart

Nota

measureSharpness utiliza la intersección de LOS ROI especificados por y .'ROIIndex''ROIOrientation'

Ejemplo: 29:32

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Orientación del ROI, especificada como el par separado por comas que consta de y , , o .'ROIOrientation''both''vertical''horizontal' el measureSharpness función realiza mediciones sólo en los ROI con la orientación especificada.

Nota

measureSharpness utiliza la intersección de LOS ROI especificados por y .'ROIIndex''ROIOrientation'

Ejemplo: 'vertical'

Tipos de datos: char | string

Valor de respuesta de frecuencia en el que se debe notificar la frecuencia espacial correspondiente, especificada como el par separado por comas que consta de un escalar o vector de enteros en el rango [1, 100].'PercentResponse'

Cada valor de agrega dos columnas a los argumentos y salida.PercentResponsesharpnessTableaggregateSharpnessTable Las columnas indican la frecuencia con la que el SFR cae al porcentaje especificado de los valores inicial y pico. Por ejemplo, cuando tiene el valor 50, ambas tablas de salida tienen las columnas y .PercentResponseMTF50MTF50P Estas columnas indican la frecuencia con la que el SFR cae al 50% del valor inicial y el valor máximo, respectivamente.

Ejemplo: 30

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

Argumentos de salida

contraer todo

Mediciones SFR de borde, devueltas como una tabla -por-. es el número de ROI muestreados. cambia los valores dependiendo de .mnmnPercentResponse Las primeras cinco columnas siempre están presentes y representan estas variables:

VariableDescripción
ROIIndice del ROI muestreado. El valor de es un entero en el rango [1, 60].ROI
slopeAngleAngulo entre el borde inclinado y vertical u horizontal puro, dependiendo de la orientación del ROI. El ángulo se mide en grados, y se devuelve como un escalar de tipo .double
confidenceFlag

Indicador booleano que indica si la medición de nitidez es fiable. es cuando la medición es confiable. es cuando la medición no es confiable debido a las siguientes condiciones:confidenceFlagtrueconfidenceFlagfalse

  • menos de 3,5 grados o más de 15 grados.slopeAngle

  • El contraste dentro del ROI es inferior al 20%.

El contraste de un ROI de borde eslanado se define como , donde y son las intensidades medias estimadas de las regiones de alta y baja intensidad a través del borde.100 * (IHigh - ILow)/(IHigh + ILow)IHighILow El contraste se calcula solo para el canal rojo.

SFR

Respuesta de frecuencia espacial del borde en el ROI. es una tabla -by-5.SFRf Las cinco columnas representan el valor de frecuencia y los valores rojo, verde, azul y luminancia correspondientes a esa frecuencia. es el número de muestras de frecuencia del SMN.f

Luminancia ( ) es una combinación lineal de los canales rojo ( ), verde ( ) y azul ( ) según:YRGB

Y = 0.213R + 0.715G + 0.072B

commentCuando es , entonces describe la razón por la que la medición no es confiable.confidenceFlagfalsecomment Cuando es , entonces es el vector vacío, .confidenceFlagtruecomment[]

Cada valor de agrega dos columnas que indican la frecuencia con la que el SFR cae al porcentaje especificado del valor inicial y máximo.PercentResponse El formato de cada entrada de la columna es un vector 1 por 4. Los cuatro elementos corresponden a los canales rojo, verde, azul y luminancia, respectivamente.

Mediciones SFR promedio de bordes verticales y horizontales, devueltos como una tabla con una o dos filas. tiene una fila cuando todos los ROI muestreados tienen la misma orientación.aggregateSharpnessTable Tiene dos filas cuando los ROI muestreados tienen orientación mixta. tiene tres columnas menos que .aggregateSharpnessTablesharpnessTable

Las dos primeras columnas de siempre están presentes y representan estas variables:aggregateSharpnessTable

VariableDescripción
OrientationOrientación de los SFR promediados. El valor de es cualquiera o .Orientation'horizontal''vertical'
SFR

Respuesta de frecuencia espacial promediada de todas las aristas en los ROI incluidos con la orientación especificada por .Orientation

es una tabla -by-5.SFRs Las cinco columnas representan el valor de frecuencia y los valores rojo, verde, azul y luminancia promediados correspondientes a esa frecuencia. es el número de muestras de frecuencia del SMN.s

La luminancia ( ) se calcula como una combinación lineal de los canales rojo ( ), verde ( ) y azul ( ) según:YRGB

Y = 0.213R + 0.715G + 0.072B

Cada valor de agrega dos columnas que indican la frecuencia con la que el SFR cae al porcentaje especificado del valor inicial y máximo.PercentResponse El formato de cada entrada de la columna es un vector 1 por 4. Los cuatro elementos corresponden a los canales rojo, verde, azul y luminancia, promediados entre todos los ROC muestreados con la misma orientación.

Sugerencias

  • Las aristas inclinadas en un gráfico correctamente orientado están en un ángulo de 5 grados desde la horizontal o vertical. Las mediciones de nitidez no son precisas cuando la orientación del borde se desvía significativamente a partir de 5 grados.

  • La nitidez es mayor hacia el centro de la región de imagen y disminuye hacia la periferia. La nitidez horizontal suele ser mayor que la nitidez vertical.

Algoritmos

El algoritmo de medición SFR se basa en el trabajo de Peter Burns.[1][2] En primer lugar, determina la posición del borde con resolución de subpíxeles para cada , o fila o columna de píxeles perpendiculares al borde, en el ROI.measureSharpnesslínea de escaneo Por ejemplo, cada fila de píxeles es una línea de exploración para un borde casi vertical. A continuación, alinea y promedia las líneas de escaneado para crear un perfil de intensidad de borde sobremuestreado.measureSharpness La función toma la derivada del perfil de intensidad y aplica una función de ventanas. La medición SFR devuelta es el valor absoluto de la transformación de Fourier de la derivada con ventanas.

Referencias

[1] Burns, Peter. "Slanted-Edge MTF for Digital Camera and Scanner Analysis." Society for Imaging Science and Technology; Proceedings of the Image Processing, Image Quality, Image Capture Systems Conference. Portland, Oregon, March 2000, pp. 135–138.

[2] Burns, Peter. "sfrmat3: SFR evaluation for digital cameras and scanners." URL: http://losburns.com/imaging/software/SFRedge/sfrmat3_post/index.html.

Introducido en R2017b