|
|
DSP och kameran.Bildbehandlingen Ett av de större problem vad gäller roboten är bildbehandlingen. Hur skall man känna igen föremål som robotens öga ser? Är det en pall, motståndare eller rent av bara en lastkaj. För att börja med det värsta kommer här en förklaring på hur färgerna känns igen.
Det går också bra att hoppa över denna sida och titta på bildbehandlingen i
Blue Star .
Färger RGB-modellen
RGB-diagram.
I nedre vänstra hörnet är färgen svart. Följs axeln åt höger blir färgen mer och mer grön för att längst ner i högra hörnet vara grön.
Analogt gäller att om axeln ut med vänster bakre sida följs kommer färgen att bli allt mer röd, och ut med y-axeln längst fram till vänster blir färgen allt mer blå.
Hela tiden är det en punkt som flyttas. Denna punkten kallas en pixel. Varje bild byggs upp av ett antal pixlar i varje rad.
Det är alltså en liten punkt i bilden som placeras i diagrammet.
Önskas pixeln svart ges den värdet röd=0, blå=0 och grön=0. Detta skrives också RGB=0,0,0.
Då befinner sig punkten längst ner i vänstra hörnet, således svart.
Skall punkten vara grön ges den värdet RGB=0,255,0, efterom den då hamnar längst bort till höger utmed den gröna axeln.
Detta samtidigt som ingen blå eller röd färg blandas in.
Rymddiagonalen.
Om lika mycket färg av RGB ges kommer pixeln vara en gråskala.
Följ diagonalen genom kuben, kallad rymddiagonalen, där alla färger ökas lika mycket hela tiden. Då kommer det längst ner till vänster vara svart färg,
för att bli ljusare och ljusare om rymddiagonalen följs till det övre högra hörnet.
Gråskalan utmed rymddiagonalen.
Om istället grön och blå blandas i samma proportioner kommer det att ge cyan.
Precis som tidigare är luminansen, ljusstyrkan, beroende på var på pilen punkten befinner sig.
Svart längst ner till vänster och ljusare ju närmare det övre högra hörnet, som är närmaste i bilden, pixeln kommer.
Blått och grönt ger cyan.
På samma sätt fås magenta då blått och rött blandas.
Magenta med en blå-röd blandning.
Rött och grönt ger gult.
Slutligen, det som kanske känns konstigast, gult då rött och grönt blandas i lika delar.
![]() HSI-modellen Nu finns en bild i DSP:n i bitmap-format. Dessutom är bilden i beskriven med RGB-modellen. Ett önskemål är nu att förändringar i ljuset inte skall påverka huruvida objektet kan kännas igen eller inte.
Bilden nedan är tagen ur robotens vinkel. Den ser alltså den röda pallen som senare skall lastas på för att föras till boet.
En röd pall som skall tas hem.
|
Pallen är inte jämt röd beroende på olika ljusintensiteter i bilden.
HSI-modellen består av färg, färgmättnad och intensitet. Modellen beskrivs av två färger och intensitet; exempelvis R,B,Y för röd, blå och intensitetsfunktionen.
Intensiteten kan ses som en gråskala som läggs på färgen i punkten. Vit släpper igenom all färg i punkten, medan svart släcker ut färgen helt.
Färgen talar helt enkelt om vilken färg pixeln har. Den beskris av en vinkel, men exakt hur det beskrivs i HSI-modellen förbi ses här.
Färgmättnaden kan ses som hur mycket färg som blandas. Tänk er en vit färgburk som bryts med en röd färg.
Att det blir röd färg bestäms av H, hue.
Hur röd färgen blir bestäms av färgmättnaden kalld S, saturation.
Slutligen kan lite svart färg pytsas i för att bestämma intensiteten i den nu blandade burken.
Vinkeln anger färg, S färg mättnad och slutligen Y intensiteten i en punkt.
Här är det intressant att låta bli att pytsa i den svarta färgen. Alltså återstår bara att välja brytfärg och mängd av brytfärgen.
Det gäller att konvertera från RGB-modellen till HSI-modellen. Skall allt var helt riktigt är det krominansen, färgsignalen, som önskas.
Som sades tidigare räcker det med två färger för att beskriva alla färger. Detta görs genom att definera två axlar.
I bilden ovan kan det röda hörnet ses som origo och de två axlarna utgörs av blå-röd och grön-röd.
För att ange gult ges ett värde på den grön-blå axeln. Cyan ses en bit upp på blå-röd axel och en bit bort på grön-röd axel.
Hur går man från RGB till HSI?
Varje pixel (x,y) undersöks i bilden som skall konverteras. Till att börja med beräknas intensiteten i punkten:
kr, kg och kb är konstanter. Dessa väljs antingen som 0.33 vardera, eller som 0.3, 0.59 och 0.11.
Den sistnämnda kombinationen gäller exempelvis i elektroniska system (såsom tv-systemet NTSC i USA) och är anpassad till ögats känslighet vad gäller de olika färgerna.
R, G och B är värdena från RGB-modellen omräknat i procent (färg/255). Intensiteten, Y, blir då ett värde mellan 0 och 1.
När intensiteten är beräknad räknas de olika normaliserade färgerna ut:
Referens, aktuell pixel och avtånd.
r0 och b0 är den färg som skall filteras ut ur bilden.
Det intressanta är att veta hur mycket varje pixel avviker från referensen r0,b0.
Avvikelsen beräknas med:
Bilden efter avståndsberäkningen där svart är långt från rferenspunkten, och vit nära.
Detta räknas om till värden mellan 0 och 255, där 255 motsvarar 0 och 0 motsvaras av 1. 255 är vit och 0 svart.
Tröskling av bilden
Histogrammet, där tröskelvärdet sätts till 240. Klicka på bilden för större bild.
Bilden som den ser ut efter trösklingen.
Vanligtvis så anges allt ovanför tröskelvärdet(här 240) som vitt (255) och allt under som svart(0), alltså räknas som beskrivningen tidigare.
![]() |
|
©2000 Christian Dahlqvist, Henrik Hagström |