Come trovare lo spostamento del canale di colore di un'immagine RGB che doveva essere in scala di grigi?


9

Sto usando un dispositivo di registrazione che sembra spostare i colori in orizzontale e vorrei trovare la quantità di spostamento che devo fare su 2/3 dei canali per ottenere un'immagine con una minima distorsione del colore.

immagine catturata

Puoi vedere qui che nell'immagine originale almeno il canale blu è stato spostato indietro di ~ 1,0 pixel.

inserisci qui la descrizione dell'immagine

La domanda è: come posso rilevare i valori ottimali di spostamento, sono sicuro che non sono numeri interi.


Quale di queste immagini sono le immagini registrate dal tuo dispositivo?

Risposte:


4

Sembra che concettualmente ci sei quasi:

  • Prendi uno dei tre canali di colore come riferimento (ad esempio: rosso)
  • Abbina il verde al rosso
  • Abbina il blu al rosso

Il problema è quindi la corrispondenza con l'accuratezza dei sub-pixel. Ottenere numeri significativi è un po 'complicato, poiché gli errori di interpolazione qualsiasi metodo avrà un impatto sulla precisione.

Esistono due metodi di registrazione delle immagini utilizzabili che posso pensare:

  1. Registrazione immagine Lucas-Kanade . L'uso dell'interpolazione lineare potrebbe non fornire risultati sufficientemente precisi, quindi considera i metodi bicubici o altri. Neil Dodgson ne ha fatto una bella panoramica. È importante che diversi spostamenti sub-pixel del kernel di interpolazione abbiano un trasferimento di frequenza simile. Per la famiglia cubica, la b-spline approssimativa è di gran lunga migliore della rom di mucca, in questo caso.

  2. Per prima cosa ingrandisci l'immagine, quindi esegui la registrazione dell'immagine con precisione dei pixel utilizzando la tua tecnica preferita. (la correlazione incrociata nel dominio di Fourier dovrebbe fare). Questo funziona solo se l'upscaling viene eseguito con cura. Molto probabilmente bilineare o bicubico non ti daranno sufficiente precisione. Posso pensare a tre modi:

un. Interpolazione yen . Vedi l'equazione 11 del suo documento. Davvero lento, ma ottimale. Sebbene sembri avere qualche alias nel segnale, quindi l'assunto 'bandlimited' che Yen fa potrebbe non reggere.

b. Calcola FFT dell'immagine, zero pad le alte frequenze, inversa FFT.

c. Upscaling non lineare. Dal momento che i bordi sono abbastanza nitidi, l'immagine non è adeguatamente limitata, questo potrebbe essere il limite principale dei metodi precedenti. In questo caso l' interpolazione direzionale dipendente dal bordo potrebbe essere migliore.

Una volta che hai la traduzione sub-pixel tra i due, la correzione per il canale verde e blu è già risolta, indipendentemente dal metodo che scegli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.