Comment trouver le décalage de canal de couleur d'une image RVB qui était censée être en niveaux de gris?


9

J'utilise un appareil d'enregistrement qui semble décaler les couleurs horizontalement et je voudrais trouver la quantité de décalage que je dois faire sur 2/3 des canaux afin d'obtenir une image avec une distorsion des couleurs minimale.

image capturée

Vous pouvez voir ici que dans l'image d'origine au moins, le canal bleu a été décalé de ~ 1,0 pixel.

entrez la description de l'image ici

La question est de savoir comment détecter les valeurs optimales de décalage, je suis sûr que ce ne sont pas des nombres entiers.


Laquelle de ces images sont les images enregistrées à partir de votre appareil?

Réponses:


4

Il semble conceptuellement que vous y êtes presque:

  • Prenez l'un des trois canaux de couleur comme référence (par exemple: rouge)
  • Faites correspondre le vert contre le rouge
  • Faites correspondre le bleu contre le rouge

Le problème est alors la correspondance avec une précision sous-pixel. Obtenir des nombres significatifs est un peu délicat, car les erreurs d'interpolation que toute méthode peut avoir ont un impact sur la précision.

Il y a deux méthodes d'enregistrement d'images utilisables auxquelles je peux penser:

  1. Enregistrement d'images Lucas-Kanade . L'utilisation de l'interpolation linéaire peut ne pas vous donner des résultats suffisamment précis, alors pensez aux méthodes bicubiques ou autres. Neil Dodgson en a fait un bon aperçu. Il est important que différents décalages de sous-pixels du noyau d'interpolation aient un transfert de fréquence similaire. Pour la famille cubique, la b-spline approximative est bien meilleure que cattmull-rom, dans ce cas.

  2. Commencez par mettre l'image à l'échelle, puis effectuez un enregistrement d'image au pixel près en utilisant votre technique préférée. (une corrélation croisée dans le domaine de Fourier devrait suffire). Cela ne fonctionne que si la mise à l'échelle est effectuée avec soin. Bilinéaire ou bicubique ne vous donnera probablement pas assez de précision. Je peux penser à trois façons:

une. Interpolation du yen . Voir l'équation 11 de son article. Vraiment lent, mais optimal. Bien que vous sembliez avoir un alias dans le signal, l'hypothèse «limitée par le groupe» que Yen fait pourrait ne pas tenir.

b. Calculer la FFT de l'image, mettre à zéro les hautes fréquences, FFT inverse.

c. Conversion ascendante non linéaire. Comme les bords sont assez nets, l'image n'est pas correctement limitée en bande, ce qui pourrait être la principale limitation des méthodes précédentes. L'interpolation directionnelle dépendante du bord pourrait être meilleure dans ce cas.

Une fois que vous avez la traduction sous-pixel entre les deux, la correction du canal vert et bleu est déjà résolue, quelle que soit la méthode que vous choisissez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.