Hallo!
Ich habe ein kleines Programm geschrieben dessen Zweck es ist, ein einem Raum alle freien Sitzplätze zu markieren. Als erstes kann der Anwender festlegen, welche Farbe die Sitzplätze haben. Dann wird das ganze Bild durchlaufen und alles, was die gleiche Farbe hat (also eben diese Sitzplätze) grün markiert. Wie das ganze aussieht, seht ihr im Dateianhang. Links ist das Originalbild, rechts wurden die freien Plätze (schwarz) grün markiert. Nun meine Frage:
Wie kann ich einen kompletten Sitzplatz, also als Gruppe von Pixeln, abgrenzen und die Sitzplätze auf dem Bild zählen?
Habe das ganze mit Get- und Setpixel realisiert. Das ist wohl sicher nicht die effizienteste Methode, aber sie erfüllt ihren Dienst und ich bin auch noch nicht allzu gut in C# 😛
MfG
Frankiegi
Hallo Frankiegi,
wenn die Sitzplätze geordnet vorliegen, so ist der Weg über Get/SetPixel gut passend.
Für allgemeinere Vorgehen siehe Kantendetektion und Forumssuche nach kantendetektion.
Noch als Hinweis zu Get/SetPixel: das ist sehr langsam -> siehe GetPixel und SetPixel um Längen geschlagen. 800 mal schneller
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Genau sowas suche ich! Das mit der Kantendetektion hilft mir schon mal weiter, werde mich damit genauer auseinandersetzen. Hast du da vielleicht auch ein gutes Beispiel parat? Zumindest so grob wie man dabei vorgeht?
MfG
Frankiegi
Hallo Frankiegi,
such dir ein Beispiel von Google-Suche nach c# edge detection aus 😉 Da findest du genug und besser könnte ich dir es auch nicht zeigen.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"