Calculando el núcleo difuminado entre 2 imágenes
A diferencia de los escenarios estándar (y más desafiantes) de desenfoque y súper resolución, tengo acceso a la imagen original (nítida)G
y es versión borrosaB
. Simplemente estoy buscando el núcleo borrosoh
. Entonces porqueB
Se toma usando una cámara real la relación es:
B=G*h+N
(dónde*
denota convolución yN
es un poco de ruido aditivo)
Naturalmente, este es un problema demasiado restringido ya queh
es pequeño en tamaño en comparación conG
yB
y así cada pocos píxeles en el par de imágenes generan una ecuación en las entradas deh
.
Pero, ¿cuál sería la forma más sencilla de implementar esto? Mis pensamientos hasta ahora:
Pasando al dominio de la frecuencia y haciendo división (comoesta respuesta sugiere). Pero esto sería inevitablemente numéricamente inestable debido al ruido, ¿no?Correlación cruzada: solo he encontrado ejemplos de señales 1-D y no pude averiguar cómo usarlas en el caso 2D de las imágenes.Construyendo cuidadosamente un sistema lineal demasiado restringido.G'h'=B'
buscandoh'
que es una versión vectorial de las entradas del kernel.h
utilizando algún procedimiento de optimización. Pero esto es muy tedioso y la matriz.G'
y vectorB'
están obligados a ser enormes en tamaño.Un ejemplo concreto en cualquier lenguaje de programación desde C ++ hasta MATLAB sería extremadamente útil.