Parece que, conceitualmente, você está quase lá:
- Tome um dos três canais de cores como referência (por exemplo: vermelho)
- Combine o verde com o vermelho
- Combine o azul com o vermelho
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.