I denne artikkelen er en enkel metode for å detektere litt farge i et bilde vil bli forklart. Dette gjør programmet til å handle når et objekt med ønsket farge viser i web cam, for eksempel. Metoden er svært enkel, og tar ikke i betraktning andre rammer av videoen verken er veldig robust i omgivelsene endres, men er fungerer godt nok til å leke med den litt.
En liten prat om farge imagesTo detektere en farge i et bilde vi trenger, først, for å forstå hvordan fargene er lagret i minnet, og hvordan du kan jobbe med dem.
Vi begynner med en biologisk motivasjon: hvordan det menneskelige øyet oppfatter farger (jeg er på ingen måte en ekspert på menneskelig syn, men jeg kan gi motivasjon til å studere fargebilder) Den menneskelige netthinnen har i hovedsak to typer celler : kjegler og stenger. Stavene er i stand til å fange intensiteten av det lys som de mottar (og er ansvarlig for nattsyn). Kjeglene er delt inn i tre typer: rødt, grønt og blått, og hver reagerer på bølgelengder av lys av fargene på sine navn. Informasjonen fra de tre typer kjegler er satt sammen i fargeinformasjonen vi oppfatter.
Dette betyr at fargen ikke er en egenskap ved objektet, men en perseptuell følelse fra synssystemet i henhold til lyset som reflekterer gjenstanden. Forskjellige dyr se de samme objektene i forskjellige farger, siden hver visuelle systemet har sine spesielle egenskaper. Mennesker er thrichromatic, men det er dyr som er like dichromatic (hvis jeg ikke tar feil, kyr er et eksempel på Dichromatic dyr). Siden det menneskelige øye mottar informasjon om tre fargekanaler, blir bildene mer vanlig representert i RGB-farge system.
In dette system er hver farge beskrevet som en vektor i et tre-dimensjonalt rom, hvor hver farge tilsvarer en akse av plassen . Linjen fra (0, 0) til (1, 1) inneholder alle nyanser av grått, fra ren hvit til helt svart.
Å vite at hver farge består av 3 komponenter vi kan prøve å klassifisere farger basert på en Euklidsk avstand mellom punktene i RGB systemet
(r1 - r2). 2+ (g1 - g2) 2+ (b1 - b2) 2
Denne tilnærmingen fungerer, men jeg skal snakke her om et annet fargesystem som kanskje nyttig når du arbeider med farger ..
HSV-fargesystemet representerer farge en vektor med tre komponenter: Hue, Saturation og verdi. I dette systemet blir informasjonen er kodet på en slik måte at bare den nyanse kan brukes til å sammenligne to farger for likheten. For å bruke HSV system i fargefilteret er nødvendig