Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Geometrische Formen erkennen mit Scratch » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Geometrische Formen erkennen mit Scratch
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Osah
Grünschnabel


Dabei seit: 24.04.2016
Beiträge: 8

Geometrische Formen erkennen mit Scratch Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
24.04.2016 01:30 Osah ist offline E-Mail an Osah senden Beiträge von Osah suchen Nehmen Sie Osah in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

__________________
Syntax Highlighting fürs Board (Link)
24.04.2016 07:20 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Osah
Grünschnabel


Dabei seit: 24.04.2016
Beiträge: 8

Sicher ? Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
24.04.2016 12:20 Osah ist offline E-Mail an Osah senden Beiträge von Osah suchen Nehmen Sie Osah in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
24.04.2016 12:37 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Osah
Grünschnabel


Dabei seit: 24.04.2016
Beiträge: 8

Rundheit Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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)
24.04.2016 12:46 Osah ist offline E-Mail an Osah senden Beiträge von Osah suchen Nehmen Sie Osah in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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?

__________________
Syntax Highlighting fürs Board (Link)
24.04.2016 12:50 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Geometrische Formen erkennen mit Scratch