Forum: Mikrocontroller und Digitale Elektronik 8-Bit greyscale zu Vektorgrafik auf Mega16 ?¿


von Weingut P. (weinbauer)


Lesenswert?

Also, ich hab da gerade ne Kopfnuss.
Ich habe einen Mega16 mit Kamera, EDO-RAM und GLCD ausgerüstet.
Die Kamera (C-328) gibt mir 8-Bit Graustufen Bilddaten raus,
die ich im externen RAM puffere. Das RAM (1MB) hängt als SIMM-30
parallel am Mega, der Zugriff geht also recht flott vonstatten.

Die Bilddaten als Pixeldaten auf dem GLCD ausgeben ist ja noch keine
Sache, aber nun möchte ich die Bilddaten in Vektordaten umwandeln
um die Übertragung an PC und auch die Weiterverwendung der Bilddaten
auf dem µC zu beschleunigen. Es geht im Wesendlichen darum,
dass der µC aus dem Bild seinen Weg ermitteln soll.

Meine Frage daher ist, wie geh ich die Berechnungen am
einfachsten und effektivsten an?

von Weingut P. (weinbauer)


Lesenswert?

keiner ne Idee?

von Rahul, der Trollige (Gast)


Lesenswert?

Korrelation wäre eine Idee meinerseits.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Vergiß das mit den Vektordaten am besten wieder. Wenn du nur die 
Datenmenge reduzieren möchtest gibt es einfachere Verfahren 
(Vektorquantisierung (hat nichts mit Vektorgrafik zu tun), DPCM), bei 
der Weiterverarbeitung der Bilder auf dem Controller hilft dir das aber 
nichts.

Wenn du das Bild vom Controller interpretieren lassen möchtest ist der 
erste Schritt die Vorverarbeitung: reduziere das Bild auf die 
Informationen die zur Lösung der Aufgabe erforderlich sind. Wenn dein 
Roboter z.B. das Bild von einem Weg aufnimmt, dann sollte nach der 
Vorverarbeitung der Weg weiß und unzugängliches schwarz sein. Damit hast 
du die Datenmenge schon mal auf 1/8 reduziert. Überleg mal wie du das 
machen könntest, von da an kannst du dich schrittweise weiter 
vorarbeiten.

von Weingut P. (weinbauer)


Lesenswert?

Also Mittelwerte finden und dann über Schwellenwert auf 1-Bit s/w
wandeln war nicht das Problem.
Das Problem ist einfach, dass es mitunter Lücken in der Strecke gibt.
Bei meiner Aufgabenstellung (nicht Hausaufgabe) hab ich leider keine
eindeutige s/w-Vorlage, sondern Grauwerte in der ganzen Bandbreite.

von Rolf Magnus (Gast)


Lesenswert?

Kantenerkennung? Stichwort Sobel.

von Weingut P. (weinbauer)


Lesenswert?

ähm, ok, Sobel schaut mal nach Wiki ganz gut aus für mein Thema,
aber hast Du ne Idee wie ich dashier:

in C ausdrücke? ... kann mir das jemand erklären was die Formel
bedeutet? Also die Texterklärung war mir ja noch recht einleuchtend,
aber die Beispielformel ists leider nicht.

Wenn ichs recht verstanden habe werden die Helligkeitsdifferenzen zu den
umliegenden Pixelwerte mehr oder weniger verstärkt, oder?

von mouz (Gast)


Lesenswert?

Hallo, ist ja sehr interessant hier. Der * bedeutet Faltung, in deinem 
Falle diskrete Faltung. Den Rest kann ich nicht erkennen, binde die 
Formel doch mal als Bild aus der wiki hier ein.

Wie man ne Ableitung (diskret) in C rechnet bin ich auch noch nicht 
hintergestiegen, ich tippe auch auf die Differenz zum vorhergehenden.

von Gast (Gast)


Lesenswert?

>in C ausdrücke?
Ich habe mir deinen Latexcode nicht genau angesehen, scheint aber etwas 
ähnliches wie auf http://en.wikipedia.org/wiki/Sobel zu sein. Und dort 
steht unter "technical details" ziemlich genau, wie es implementiert 
wird. Wenn dich das überfordert, solltest du die Finger vom Projekt 
lassen

von Marko (Gast)


Lesenswert?

naja, nachdem ich den Rechner gewechselt hab bekomme ich seltsamerweise
von Wiki die Formeln schön angezeigt, auf der anderen Kiste wars in dem 
oben beschriebenen Format dargestellt, das hab ich echt nicht geblickt.
Aber da ich nun die Funktion in Schönschrift habe ist die ja recht 
simpel,
danke für den Tip.

Ach so, Tips in der Richtung wenn du's nicht kannst lass es, find ich
nicht sehr erhellend. So hätt ich nie laufen gelernt.
Der Mensch wächst mit seinen Aufgaben / Herausforderungen. ;o)

von mouz (Gast)


Lesenswert?

Hm, wie faltet man eigentlich Matrizen? Hatte das bisher nur bei 
Funktionen.

von Gast (Gast)


Lesenswert?

Soweit ich es sehe, sind keine Matrizen gemeint, sondern eine 
diskretisierte Funktion über dem R^2, so dass es eine normale 
2-dimensionale Faltungssumme ist.
Kann aber auch falsch liegen, da ich die Seite nur überflogen habe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.