www.mikrocontroller.net

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


Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keiner ne Idee?

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrelation wäre eine Idee meinerseits.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kantenerkennung? Stichwort Sobel.

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: mouz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: mouz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, wie faltet man eigentlich Matrizen? Hatte das bisher nur bei 
Funktionen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.