Geometrische Formen erkennen mit Scratch |
24.04.2016, 01:30 | 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. |
|
|
24.04.2016, 07:20 | 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 |
24.04.2016, 12:20 | 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. |
24.04.2016, 12:37 | 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. |
Anzeige | |
|
|
24.04.2016, 12:46 | 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) |
24.04.2016, 12:50 | 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? |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |