Geometrische Formen erkennen mit Scratch

Neue Frage »

Auf diesen Beitrag antworten »
Osah Geometrische Formen erkennen mit Scratch

Meine Frage:
Hallo,

Ich beschäftige mich seit einigen Zeiten mit Scratch (das ist etwas wie z.B. Java für Kinder). Nun habe ich mich gefragt, ob man Algorithmen entwickeln kann, um z.B. ein Dreick von einem Recht/Kreis unterscheiden kann ?
Was für Algorithmen würde ich brauchen. Ich habe auch schon einige Algorithmen ausprobiert .

Meine Ideen:
Idee: 4 Scanlinien entwickeln die dann den Mittelpunkt der Figuren bestimmen und anhand dieses Mittelpunktes irgendwie bestimmen ob es ein Dreick/Kreis/Rechteck/keine geometrische Form ist.
 
Auf diesen Beitrag antworten »
eulerscheZahl

Es gibt Kenngrößen wie die "Rundheit" - dazu musst du Umfang und Fläche ins Verhältnis setzen.
Die Fläche kriegst du durch Pixel zählen, die innerhalb des Objekts liegen. Den Umfang, indem du am Rand entlangläufst und die Pixel dort zählst.
Wenn das nicht reicht, schau dir die Hu Momente an. Damit wird auch ein gedrehtes Dreieck erkannt. Wenn die Winkel variieren, wird es aber schwer werden.
Falls du das Objekt noch nicht sauber extrahiert hast: Kantenerkennung mit Canny
Auf diesen Beitrag antworten »
Osah Sicher ?

Hallo,

Sind Sie sich sicher, dass dies alles mit Scratch bzw. einem eher unorofessionellen Programm geht.
Ich glaube es wäre besser , wenn man einfache Algorithmen hat.
Außerdem wäre es hilfreich, wenn Sie mir einige Lösungsvarianten geben würden.
Meine Ideen:
a) Siehe oben
b) mit Hilfe von "Scanlinien" Höhe und Breite der Fugur erkennen und dann mit Hilfe dieser Werte die Form bestimmen


PS: Ich möchte nur die geometrischen Formen zwischen Dreieck,Rechteck,Kreis und Haus (keine geometrische Form) unterscheiden.
Auf diesen Beitrag antworten »
eulerscheZahl

Theoretisch ja, Scratch ist nämlich turingvollständig.
Ob es einfach ist, ist eine andere Frage. Ich gebe zu, selbst nie mit Scratch gearbeitet zu haben.

Hast du denn schon eine saubere Zerlegung in Linien? Weißt du, wo Ecken sind? Wie sauber ist das Eingabematerial (sind vielleicht Wackler drin, weil mit der Maus gezeichnet)?
Wenn nicht, sind genannte Algorithmen denke ich das Einfachste - mit Scratch würde ich sie trotzdem nicht umsetzen.
 
Auf diesen Beitrag antworten »
Osah Rundheit

Ok, aber wie finde ich die Kenngrössen wie die Rundheit
Und außerdem (allerdings dies für die Schule) soll ich Algorithmen im Form eines Flussdiagrammes schreiben und ich finde es passend dann dies hierfür zu machen. Allerdings weiß ich nicht viel drüber
Ich könnte dir einen Start geben mit deinem Beispiel wenn ich das mit der Rundheit wissen würde
Man kann sich auch Scratch online anschwärzen um einen Einblick von der Programmiersprache zu bekommen (Google: Scratch)
Auf diesen Beitrag antworten »
eulerscheZahl

Ich habe schon eine kurez Recherche zu Scratch gemacht, vor meiner 2. Antwort.
Du sagtest, du hast Linien gegeben. Kannst du die Längen addieren und so den Umfang berechnen? Wie sieht es mit dem Flächeninhalt aus?
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »