Estou usando um dispositivo de gravação que parece mudar as cores horizontalmente e gostaria de encontrar a quantidade de deslocamentos que tenho que fazer em 2/3 dos canais para obter uma imagem com mínima distorção de cor.
Você pode ver aqui que, na imagem original, pelo menos o canal azul foi deslocado para trás com ~ 1,0 pixel.
A questão é como posso detectar os melhores valores de desvio, tenho certeza de que eles não são números inteiros.
image-processing
sorin
fonte
fonte
Respostas:
Parece que, conceitualmente, você está quase lá:
O problema, então, é a correspondência com a precisão do sub-pixel. Obter números completos significativos é um pouco complicado, uma vez que os erros de interpolação que qualquer método causará afetam a precisão.
Existem dois métodos úteis de registro de imagens em que posso pensar:
Registro de imagem de Lucas-Kanade . O uso da interpolação linear pode não fornecer resultados precisos o suficiente, então considere os métodos bicúbicos ou outros. Neil Dodgson fez uma ótima visão geral. É importante que diferentes desvios de sub-pixel do kernel de interpolação tenham uma transferência de frequência semelhante. Para a família cúbica, o b-spline aproximado é muito melhor que o cattmull-rom, neste caso.
Primeiro aprimore a imagem e, em seguida, faça o registro de imagens com precisão de pixels usando sua técnica favorita. (a correlação cruzada no domínio Fourier deve funcionar). Isso só funciona se o upscaling for feito com cuidado. Provavelmente, bilinear ou bicúbico não fornecerão precisão suficiente. Eu posso pensar em três maneiras:
uma. Interpolação de ienes . Veja a equação 11 de seu artigo. Muito lento, mas ideal. Embora você pareça ter algum apelido no sinal, a suposição 'bandlimited' que o Yen faz pode não se manter.
b. Calcule FFT da imagem, zero pad as altas frequências, inversa FFT.
c. Escalonamento não linear. Como as bordas são bastante nítidas, a imagem não é adequadamente ilimitada por banda, que pode ser a principal limitação dos métodos anteriores. A interpolação direcional dependente da borda pode ser melhor nesse caso.
Depois de ter a conversão de sub-pixel entre os dois, a correção para o canal verde e azul já está resolvida, independentemente do método escolhido.
fonte