Come riconoscere i colori dalla tabella dei colori?


9

Sto sviluppando un'applicazione di visione che utilizza la tabella dei colori in basso e la fotocamera per estrarre il colore di ogni patch nella tabella. Per fare ciò, devo prima rilevare l'area del grafico in un'immagine e abbinare l'area al modello esistente che contiene le posizioni delle patch.

La mia domanda: devo rilevare l'area della patch di colore riconoscendo i quattro angoli del grafico. Puoi vedere gli angoli che i piccoli rettangoli inserti indicano nell'immagine qui sotto. So che un modo per procedere è consentire all'utente di selezionare quegli angoli facendo clic su di esso. Ma c'è un modo per rilevare automaticamente quattro angoli dall'immagine.

inserisci qui la descrizione dell'immagine


Solo curioso, dove si può acquisire un tale diagramma di riferimento di colore?
hotpaw2,

@ hotpaw2 Come quasi sempre, google. Cerca il termine "target it8"
Tae-Sung Shin

Risposte:


4

È possibile ospitare le linee hough per rilevare l'area dei colori

  • Per prima cosa rileva tutte le linee
  • Le linee con la lunghezza più lunga sarebbero quelle più esterne
  • Scegli la linea orizzontale superiore e abbina il modello per i quadrati.
  • Quando trovi i quadrati, attraversa il pedaggio verso il basso per raggiungere l'altro gruppo di quadrati.
  • Segna tutti i punti in cui sono stati trovati i quadrati
  • Ora hai un'area chiusa per la tabella dei colori.

2

Ogni array 2D di un componente di colore (RGB, et.al.) è piuttosto elevato contrasto e distintivo. Quindi potrei provare a utilizzare una complessa FFT 2D di ciascun componente di colore per determinare la scala e l'offset dell'immagine fotografica rispetto a quella di un'immagine di riferimento. Quindi utilizzare quelli per regolare le coordinate misurate / note degli angoli e / o delle toppe nell'immagine di riferimento per produrre coordinate nella foto.

Potrebbe essere necessario misurare in prima persona alcune coordinate su un'immagine di riferimento utilizzando un editor bitmap.


1

Come primo passo, rimuoverei tutto il disordine con il grigio e il testo. A partire da tutti e quattro i lati mi fermerò fino a quando la maggior parte dei pixel avrà un colore "grigio" unicamente noto.

Questo ti lascerà solo con la scacchiera composta da diversi colori. Ti aspetti circa 22x12 - circa 264 colori.

Un metodo più semplice sarebbe applicare l'algoritmo di palatalizzazione più semplice. Se dovessi tradurre questo in un'immagine GIF - applica la quantizzazione del colore con ogni cluster di colore rappresentato come colore centroide.

Questo sarebbe specificamente facile nel tuo caso perché la fonte è già un palato di qualche tipo e puoi fare una buona idea decente per iniziare.

Controllalo:

NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML

Quantizzazione dei colori per ottici: http://www.cubic.org/docs/octree.htm . Vedi anche questo

Questi sono solo alcuni riferimenti; ma troverai codice pronto per l'uso nella maggior parte delle librerie che utilizzano tali formati di immagine. (BMP, PNG e GIF supportano tali rappresentazioni). Controlla anche libpng e libjpeg per alcune implementazioni rapide.


0

Perché non cercare i confini del grafico, anziché gli angoli? Puoi provare a utilizzare un rilevatore di bordi e quindi a trovare linee rette utilizzando la trasformazione di Hough.

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.