Articulo de referencia

Derivado de la imagen

Las derivadas de imágenes se pueden calcular utilizando pequeños filtros de convolución de tamaño 2 × 2 o 3 × 3, como los operadores Laplaciano , Sobel , Roberts y Prewi...

Las derivadas de imágenes se pueden calcular utilizando pequeños filtros de convolución de tamaño 2  ×  2 o 3  ×  3, como los operadores Laplaciano , Sobel , Roberts y Prewitt . [ 1 ] Sin embargo, una máscara más grande generalmente dará una mejor aproximación de la derivada y ejemplos de tales filtros son las derivadas gaussianas [ 2 ] y los filtros de Gabor . [ 3 ] A veces es necesario eliminar el ruido de alta frecuencia y esto se puede incorporar en el filtro de modo que el núcleo gaussiano actúe como un filtro de paso de banda. [ 4 ] El uso de filtros de Gabor [ 5 ] en el procesamiento de imágenes ha sido motivado por algunas de sus similitudes con la percepción en el sistema visual humano . [ 6 ]

El valor del píxel se calcula como una convolución.

pag=dGRAMO{\displaystyle p'_{u}=\mathbf {d} \ast G}

dónded{\displaystyle \mathbf {d} }es el núcleo derivado yGRAMO{\displaystyle G}son los valores de píxeles en una región de la imagen y{\displaystyle \ast }es el operador que realiza la convolución .

Derivados de Sobel

Los núcleos de derivada, conocidos como el operador Sobel, se definen de la siguiente manera, para el{\displaystyle u}yv{\displaystyle v}direcciones respectivamente:

pag=[+1+2+1000121]GRAMOypagv=[+101+202+101]GRAMO{\displaystyle p'_{u}={\begin{bmatrix}+1&+2&+1\\0&0&0\\-1&-2&-1\end{bmatrix}}*\mathbf {G} \quad {\mbox{y}}\quad p'_{v}={\begin{bmatrix}+1&0&-1\\+2&0&-2\\+1&0&-1\end{bmatrix}}*\mathbf {G} }

dónde{\displaystyle *}Aquí se denota la operación de convolución bidimensional .

Este operador es separable y puede descomponerse como productos de un núcleo de interpolación y un núcleo de diferenciación, de modo que,pagv{\displaystyle p'_{v}}, por ejemplo se puede escribir como

[+101+202+101]=[121][+101]{\displaystyle {\begin{bmatrix}+1&0&-1\\+2&0&-2\\+1&0&-1\end{bmatrix}}={\begin{bmatrix}1\\2\\1\end{bmatrix}}{\begin{bmatrix}+1&0&-1\end{bmatrix}}}

Derivados de Farid y Simoncelli

Farid y Simoncelli [ 7 ] [ 8 ] proponen utilizar un par de núcleos, uno para interpolación y otro para diferenciación (compárese con Sobel más arriba). Estos núcleos, de tamaños fijos de 5 x 5 y 7 x 7, se optimizan de manera que la transformada de Fourier aproxime su relación de derivada correcta.

En el código Matlab, el llamado filtro de 5 coeficientes es

k = [ 0,030320 0,249724 0,439911 0,249724 0,030320 ]; d = [ 0,104550 0,292315 0,000000 - 0,292315 - 0,104550 ]; d2 = [ 0,232905 0,002668 - 0,471147 0,002668 0,232905 ];

Y el filtro de 7 toques es

k = [ 0,004711 0,069321 0,245410 0,361117 0,245410 0,069321 0,004711 ]; d = [ 0,018708 0,125376 0,193091 0,000000 - 0,193091 - 0,125376 - 0,018708 ]; d2 = [ 0,055336 0,137778 - 0,056554 - 0,273118 - 0,056554 0,137778 0,055336 ];

Como ejemplo, las derivadas de primer orden se pueden calcular de la siguiente manera usando Matlab para realizar la convolución.

Iu = conv2 ( d , k , im , 'same' ); % derivada verticalmente (con respecto a Y) Iv = conv2 ( k , d , im , 'same' ); % derivada horizontalmente (con respecto a X)

Cabe destacar que Farid y Simoncelli han obtenido coeficientes de primera derivada más precisos que los presentados anteriormente. Sin embargo, estos últimos son consistentes con el interpolador de segunda derivada y, por lo tanto, son más adecuados si se buscan tanto la primera como la segunda derivada. En caso contrario, cuando solo se desea la primera derivada, deben emplearse los coeficientes óptimos de la primera derivada; para más detalles, consulte su artículo.

derivados de Hast

Hast presentó filtros de derivadas basados ​​en splines cúbicos arbitrarios. [ 9 ] Demostró cómo se pueden calcular con mayor precisión las derivadas de primer y segundo orden utilizando splines cúbicos o trigonométricos. Los filtros de derivadas eficientes deben tener una longitud impar para que la derivada se calcule para el píxel central. Sin embargo, cualquier filtro cúbico se ajusta sobre 4 puntos de muestreo, lo que da como resultado un centro que cae entre píxeles. Esto se resuelve mediante un enfoque de doble filtrado que da como resultado filtros de tamaño 7 x 7. La idea es filtrar primero por interpolación para obtener el valor interpolado entre píxeles, tras lo cual se repite el procedimiento utilizando filtros de derivadas, donde el valor central ahora cae en los centros de los píxeles. Esto se puede demostrar fácilmente mediante la ley asociativa para la convolución.

pag=d(kGRAMO)=(dk)GRAMO{\displaystyle p'_{u}=\mathbf {d} \ast (\mathbf {k} \ast G)=(\mathbf {d} \ast \mathbf {k} )\ast G}

Por lo tanto, el núcleo de convolución para calcular la derivadakd{\displaystyle \mathbf {k_{d}} }utilizando un núcleo de interpolación k{\displaystyle \mathbf {k} }y un núcleo derivado d{\displaystyle \mathbf {d} }se convierte

kd=dk{\displaystyle \mathbf {k_{d}} =\mathbf {d} \ast \mathbf {k} }

También hay que tener en cuenta que la convolución es conmutativa, por lo que el orden de los dos núcleos no importa y también es posible insertar un núcleo de derivada de segundo orden, así como uno de primera. Estos núcleos se derivan del hecho de que cualquier superficie spline se puede ajustar sobre una región de píxeles cuadrados, en comparación con las superficies de Bézier . Hast demuestra que dicha superficie se puede realizar como una convolución separable.

pag(,v)=TMETROGRAMOMETROTv=METROTvTMETROGRAMO{\displaystyle p(u,v)=\mathbf {u} ^{T}MGM^{T}\mathbf {v} =M^{T}\mathbf {u} \otimes \mathbf {v} ^{T}M\ast G}

dóndeMETRO{\displaystyle M}es la matriz base de spline,{\displaystyle \mathbf {u} }yv{\displaystyle \mathbf {v} }son vectores que contienen las variables{\displaystyle u}yv{\displaystyle v}, como

=[3,2,,1]T{\displaystyle \mathbf {u} =[u^{3},u^{2},u,1]^{T}}
v=[v3,v2,v,1]T{\displaystyle \mathbf {v} =[v^{3},v^{2},v,1]^{T}}

Ahora se pueden configurar los núcleos de convolución.

k=TMETRO=(METROTv)T{\displaystyle \mathbf {k} =\mathbf {u} ^{T}M=(M^{T}\mathbf {v} )^{T}}
d=TMETRO=(METROTvv)T{\displaystyle \mathbf {d} ={\frac {\partial \mathbf {u} ^{T}}{\partial u}}M=\left(M^{T}{\frac {\partial \mathbf {v} }{\partial v}}\right)^{T}}
d2=2T2METRO=(METROT2vv2)T{\displaystyle \mathbf {d^{2}} ={\frac {\partial ^{2}\mathbf {u} ^{T}}{\partial u^{2}}}M=\left(M^{T}{\frac {\partial ^{2}\mathbf {v} }{\partial v^{2}}}\right)^{T}}

Por lo tanto, las derivadas de primer orden en el píxel central se calculan como:

D=TMETROTMETROGRAMOMETROTvMETROTv=dk(kk)TGRAMO{\displaystyle D_{u}={\frac {\partial \mathbf {u} ^{T}}{\partial u}}M\ast \mathbf {u} ^{T}MGM^{T}\mathbf {v} \ast M^{T}\mathbf {v} =\mathbf {d} \ast \mathbf {k} \otimes (\mathbf {k} \ast \mathbf {k} )^{T}\ast G}

y

Dv=TMETROTMETROGRAMOMETROTvMETROTvv=kk(dk)TGRAMO{\displaystyle D_{v}=\mathbf {u} ^{T}M\ast \mathbf {u} ^{T}MGM^{T}\mathbf {v} \ast M^{T}{\frac {\partial \mathbf {v} }{\partial v}}=\mathbf {k} \ast \mathbf {k} \otimes (\mathbf {d} \ast \mathbf {k} )^{T}\ast G}

Asimismo, con los núcleos de derivada de segundo orden son

D2=2T2METROTMETROGRAMOMETROTvMETROTv=d2k(kk)TGRAMO{\displaystyle D_{u}^{2}={\frac {\partial ^{2}\mathbf {u} ^{T}}{\partial u^{2}}}M\ast \mathbf {u} ^{T}MGM^{T}\mathbf {v} \ast M^{T}\mathbf {v} =\mathbf {d^{2}} \ast \mathbf {k} \otimes (\mathbf {k} \ast \mathbf {k} )^{T}\ast G}

y

Dv2=TMETROTMETROGRAMOMETROTvMETROT2vv2=kk(d2k)TGRAMO{\displaystyle D_{v}^{2}=\mathbf {u} ^{T}M\ast \mathbf {u} ^{T}MGM^{T}\mathbf {v} \ast M^{T}{\frac {\partial ^{2}\mathbf {v} }{\partial v^{2}}}=\mathbf {k} \ast \mathbf {k} \otimes (\mathbf {d^{2}} \ast \mathbf {k} )^{T}\ast G}

El filtro de spline cúbico se evalúa en su centro. =v=0,5{\displaystyle u=v=0.5}y por lo tanto

=v=[(0,5)3,(0,5)2,0,5,1]T=[0,125,0,25,0,5,1]T{\displaystyle \mathbf {u} =\mathbf {v} =[(0.5)^{3},(0.5)^{2},0.5,1]^{T}=[0.125,0.25,0.5,1]^{T}}

De igual modo, las derivadas de primer orden se convierten en

(0,5)=v(0,5)v=[3(0,5)2,2(0,5),1,0]T=[0,75,1,1,0]T{\displaystyle {\frac {\partial \mathbf {u} (0.5)}{\partial u}}={\frac {\partial \mathbf {v} (0.5)}{\partial v}}=[3\cdot (0.5)^{2},2\cdot (0.5),1,0]^{T}=[0.75,1,1,0]^{T}}

Y de manera similar las derivadas de segundo orden son

d2(0,5)2=d2v(0,5)dv2=[6(0,5),2,0,0]T=[3,2,0,0]T{\displaystyle {\frac {d^{2}\mathbf {u} (0.5)}{u^{2}}}={\frac {d^{2}\mathbf {v} (0.5)}{dv^{2}}}=[6\cdot (0.5),2,0,0]^{T}=[3,2,0,0]^{T}}

Se puede aplicar y utilizar cualquier filtro cúbico para calcular las derivadas de la imagen utilizando las ecuaciones anteriores, como Bézier , Hermite o B-splines .

El ejemplo que se muestra a continuación en Matlab utiliza la función spline de Catmull-Rom para calcular las derivadas.

M = [ 1 , - 3 , 3 , - 1 ; - 1 , 4 , - 5 , 2 ; 0 , 1 , 0 , - 1 ; 0 , 0 , 2 , 0 ] * 0.5 ; u = [ 0.125 ; 0.25 ; 0.5 ; 1 ]; up = [ 0.75 ; 1 ; 1 ; 0 ]; d = up '* M ; k = u '* M ; Iu = conv2 ( conv ( d , k ), conv ( k , k ), im , 'same' ); % derivada vertical (con respecto a Y) Iv = conv2 ( conv ( k , k ), conv ( d , k ), im , 'same' ); % derivada horizontal (con respecto a X)

Otros enfoques

Los filtros orientables pueden utilizarse para calcular derivadas [ 10 ]. Además, Savitzky y Golay [ 11 ] proponen un método de suavizado polinomial de mínimos cuadrados , que podría utilizarse para calcular derivadas, y Luo et al [ 12 ] analizan este método con mayor detalle. Scharr [ 13 ] [ 14 ] [ 15 ] muestra cómo crear filtros de derivadas minimizando el error en el dominio de Fourier, y Jähne et al [ 16 ] analizan con mayor detalle los principios del diseño de filtros , incluidos los filtros de derivadas.

Véase también

Referencias

  1. Pratt, WK, 2007. Procesamiento de imágenes digitales (4.ª ed.). John Wiley & Sons, Inc. págs. 465–522
  2. H. Bouma, A. Vilanova, JO Bescós, BMTH Romeny, FA Gerritsen, Derivadas gaussianas rápidas y precisas basadas en b-splines , en: Actas de la 1.ª Conferencia Internacional sobre Espacio de Escalas y Métodos Variacionales en Visión por Computadora, Springer-Verlag, Berlín, Heidelberg, 2007, págs. 406–417.
  3. P. Moreno, A. Bernardino, J. Santos-Victor, Mejora del descriptor SIFT con filtros de derivada suave, Pattern Recognition Letters 30 (2009) 18–26.
  4. ^ JJ Koenderink, AJ van Doorn, Operadores de vecindario genéricos , IEEE Trans. Patrón Anal. Mach. Intel. 14 (1992) 597–605.
  5. D. Gabor, Teoría de la comunicación, J. Inst. Electr. Eng. 93 (1946) 429–457.
  6. JG Daugman, Transformadas de Gabor bidimensionales discretas completas mediante redes neuronales para análisis y compresión de imágenes, IEEE Trans. Acoust. Speech Signal Process. 36 (1988) 1169–1179.
  7. H. Farid y EP Simoncelli, Diferenciación de señales multidimensionales discretas Archivado el 16-11-2019 en Wayback Machine , IEEE Trans Image Processing, vol.13(4), pp. 496--508, abril de 2004.
  8. H. Farid y EP Simoncelli, Núcleos de derivadas direccionales óptimamente equivariantes a la rotación , Conferencia Internacional sobre Análisis Computacional de Imágenes y Patrones, págs. 207-214, septiembre de 1997.
  9. A. Hast., "Diseño de filtro simple para derivadas de primer y segundo orden mediante un enfoque de doble filtrado" , Pattern Recognition Letters, vol. 42, n.º 1, junio, págs. 65-71, 2014.
  10. WT Freeman, EH Adelson, El diseño y uso de filtros orientables , IEEE Trans. Pattern Anal. Mach. Intell. 13 (1991) 891–906.
  11. A. Savitzky, MJE Golay, Suavizado y diferenciación de datos mediante procedimientos simplificados de mínimos cuadrados , Anal. Chem. 36 (1964) 1627–1639.
  12. J. Luo, K. Ying, P. He, J. Bai, Propiedades de los diferenciadores digitales de Savitzky–Golay, Digit. Signal Process. 15 (2005) 122–136.
  13. H. Scharr, Familias óptimas de filtros de derivada de segundo orden para la estimación de movimiento transparente , en: M. Domanski, R. Stasinski, M. Bartkowiak (Eds.), EUSIPCO 2007.
  14. Scharr, Hanno, 2000, Disertación (en alemán), Operadores óptimos en el procesamiento de imágenes digitales .
  15. B. Jähne, H. Scharr y S. Körkel. Principios del diseño de filtros. En Manual de visión por computadora y aplicaciones. Academic Press, 1999.
  16. B. Jähne, P. Geissler, H. Haussecker (Eds.), Handbook of Computer Vision and Applications with Cdrom, 1ª ed., Morgan Kaufmann Publishers Inc., San Francisco, CA, EE. UU., 1999, pp. 125–151 (Capítulo 6).
  • derivada5.m Farid y Simoncelli: Derivadas discretas de 1.ª y 2.ª con 5 derivaciones.
  • derivada7.m Farid y Simoncelli: Derivadas discretas de 1.ª y 2.ª orden de 7 derivaciones
  • kernel.m Hast: 1.ª y 2.ª derivadas discretas para splines cúbicos, splines de Catmull-Rom, splines de Bezier, B-Splines y splines trigonométricos.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Image_derivative&oldid=1314740420 "