µCam- en pytteliten digitalkamera för bildbehandling

Berätta om dina pågående projekt.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av victor_passe »

Problemet är fortfarande minne, finns ingen arm, vad jag vet som har över 32KiB RAM och är under 6x6mm stor
Och just nu är det länken mellan PC och kort som är begränsande, inte mellan kamera och PIC.
En FPGA är för stor, finns iof små men de är nog i bga.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av victor_passe »

Jag har lekt lite med YUV formatet idag.
Resultat:
Med alla kanaler:
UVY.png
Med enbart Y(Typ samma som svartvitt):
Y.png
Med enbart UV(Allt förutom det svartvita, alltså enbart färg):
UV.png
Ska testa att variera antalet bitar, nu är det YUV 422 alltså 8bitar för vadera kanal, men man skickar bara UV för varannan pixel och Y för varje, så man antar att 2 pixlar bredvid varandra har ungefär samma färg.
Jag antar att man för så för att ögat har sämre upplösning i färg än i svartvitt.

Så om man bara skickar Y som i bilden ovan "sparar" man 50% minne/tid/data.
Fast nu skickar jag alltid allt och försummar kanalerna vid uppritning i C#

Edit:
Slänger upp lite bilder på resultatet med reducerad Y data:
6bitar för varje Y:
Y6bit.png
4bitar:
Y4bit.png
2bitar:
Y2bit.png
För 6 bitar blir det (2/3)pixlar för varje byte data(givet ingen färgdata)
För 4 bitar blir det 2pixlar för varje byte data(givet ingen färgdata)
För 2 bitar blir det 4pixlar för varje byte data(givet ingen färgdata)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av blueint »

Kika på wikipedias "color depth" artikel.

För YUV så kan man reducera mängden data i UV delen utan att det påverkar bildkvalitén så mycket. En annan metod är HAM där man istället för att uppdatera YUV datat i varje pixel så ändrar man endast en av dem för nästa pixel osv.

För färg skulle jag nog provat 2:1:1 eller 5-bit för gråskala. Eller någonstans där.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av victor_passe »

Jag skrev en jätteenkel färg filter algoritm:

Kod: Markera allt

D = U - 128;
E = V - 128;
if ((D < 0) && (E > 20))
röd
else
inte röd
iprincip, här är resultatet på en sparkfun låda:
redfilter.png
Det är någon bugg med den nedersta raden, vet inte varför. funderar på att bara utesluta den istället för att felsöka.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av victor_passe »

Har nu jobbat vidare på filterbiten och laggt till erroderings filter, färgfilter är implementerat i µC nu och jag ska implementerna errode snart.
program.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
MiaM
Inlägg: 12730
Blev medlem: 6 maj 2009, 22:19:19

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av MiaM »

blueint skrev:Kika på wikipedias "color depth" artikel.

För YUV så kan man reducera mängden data i UV delen utan att det påverkar bildkvalitén så mycket. En annan metod är HAM där man istället för att uppdatera YUV datat i varje pixel så ändrar man endast en av dem för nästa pixel osv.

För färg skulle jag nog provat 2:1:1 eller 5-bit för gråskala. Eller någonstans där.
OBS att HAM var från början tänkt att användas med YUV-signaler istället för RGB om jag förstått rätt, och borde nog också funka bättre med YUV.
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: µCam- en pytteliten digitalkamera för bildbehandling

Inlägg av victor_passe »

Det blev svårt att se den röda plexibit jag tänkte ha som "boll" i YUV så det blir nog RGB istället.
I YUV så såg den min bordsbänk som röd, det skiljde knappt något mellan Röd plast och träbänk, labbar kanske mer med YUV senare.
Jag labbade lite och fick fram detta filtret:
(Röd/(Grön+Blå))>tröskel
Resultat:
Ball.png
Bilderna ovanifrån:
Rå data, data efter filtret och errodering, histogram över (Röd/(Grön+Blå)) för orginal bilden.
Ball.png
Om man tar bort bollen:
nBall.png
Och med den översta bilden som (Röd/(Grön+Blå))
nBallAna.png
Så filtret funkar bra för rött, ska få den att se några färger till så man kan ha ett tex grön mål, en blå center linje eller något.
Målet är ju alltså att spela fotboll med robotar, så därför måste de se boll, mål osv. Jag har aldrig spelat fotboll själv så jag vet bara att boll + mål = poäng.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar