![]() |
Rechteck finden in Bild
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich hab bei einem Bild beschriftete Rechtecke. Ich soll jetzt in einem Programm Auswerten wo die Rechtecke liegen mit entsprechenden eckpunkten. Was ich als Startpunkt habe ist der x/y Mittelpunkt des Rechteckes. Nachdem aber im Rechteck auch eine Beschriftung ist kann ich nicht einfach "suchen bis schwarzer Punkt in +- x/y von Mittelpunkt" da dann meine Routine dann bei der Schrift stoppt. Was mir das Ganze noch schwerer macht das zum Teil die Rechtecke dicht an dicht liegen. Ich komm hier absolut nicht weiter wie ich die Rechtecke effizient und sicher erkennen könnte. Zur veranschaulichung hab ich einen Bildausschnitt angehängt Bin für jeden Tip dankbar. Gruß Matthias |
Re: Rechteck finden in Bild
Hallo,
wenn du für deine Rechtecke eine Minimale Kantenlänge angeben kannst, bsw. 11 Pixel, dann könntest du solange nach oben (unten, links, rechts) gehen, bis du auf ein schwarzes Pixel mit mindestens links und rechts davon 5 schwarzen Pixeln findest. MfG Kolbaschedder |
Re: Rechteck finden in Bild
Liste der Anhänge anzeigen (Anzahl: 1)
Leider kann ich keine minimale Kantenlänge angeben, da auch größere Bereiche mit größerer Beschriftung auftauchen können.
Ich kann aber einen maximale Größe von 1/2 Bitmap.width/heigth annehmen was aber leider nur als abbruchbedingung nutzbar ist um bei Fehler/Ausnahmen einen Endloslauf zu verhindern. Für eine mögliche Ausnahme habe ich ein Bild angehängt. Wie ich diese dann behandel weis ich noch nicht, aber vorerst reicht mir die erkennung von Rechtecken. Also rein als Info mit dabei. Danke aber schon mal für den Lösungsansatz. Leider ists ein bischen komplizierter. Gruß Matthias |
Re: Rechteck finden in Bild
Hallo,
wenn die Kanten der Rechtecke so schön exakt waagerecht und senkrecht verlaufen wie in deinem Bild, dann würde ich so vorgehen: Per ScanLine(): (1) Alle senkrechten und waagerechten Kanten als Punktepaare in dynamischen Arrays VertEdges[] und HorzEdges[] feststellen. (2) Alle Rechtecke über gleiche Eckpunkte der Kanten identifizieren. Zusatzaufwand entsteht, wenn die Kantendicke variabel ist. Grüße vom marabu Nachtrag: Nimm statt der dynamischen Arrays besser eine TList, die ist effektiver beim Redimensionieren. |
Re: Rechteck finden in Bild
Danke Marabu, der Gedanke ist Klasse :thumb: aber :!:
Zitat:
Zitat:
Zitat:
Was ich am ende haben möchte(muss) ist eine Liste die ungefähr so aussieht [ RECHTECK ] Bezeichner: X-Offs. Y-Offs. obenlinks untenrechts C803 723 428 ??? ??? Die mit ??? angegebenen Werte muss ich eben ermitteln. Gruß Matthias |
Re: Rechteck finden in Bild
Moin, moin,
Du jagst also Bauelementbeschriftungen. Zerlegen wir das mal in Teilaufgaben: 1. Positionieren im umrahmten Bereich 2. finden der maximalen Top, Bottom, Left und Rigth Positionen 3. Erkennen der Ecken (falls Ecken da) Sind wir also bei 2. Hier gibt es natürlich viele Varianten. Allgemein ist das jetzt eine Pfadsuche zu einem Extema wo Deine Schildkröte (noch ohne Namen) nur auf weissen Punkten laufen kann. Das hier könnte weiterhelfen ![]() Grüße // Martin |
Re: Rechteck finden in Bild
Tach auch mschaefer,
schön das du erkennst das es sich um Bauteile handelt, aber ich jage nicht die Beschriftungen, und ich weis auchnicht was mir der A_Stern bringen sollte. ich suche ja Rechtecke und keinen kürzesten Weg. Die Beschriftungen sind mir auch egal, da ich ja bereits als Daten den Bezeichner und x,y Offset habe, aber wie ich an die Eckpunkte des rechtecks kommen soll ist mir schleierhaft. Gruß Matthias PS: Das zerlegen in Teilaufgabe kannst knicken 1. Ich nicht positionieren muß da ich den xy-Offset weis, das heit ich spring von Teil1 zu Teil2 2.nicht der max sonder DER :!: Positionen des Rechtecks interessieren mich 3.Bei einem Rechteck sollten Rechtecke sein, andernfalls würd ich ja nach Rechtrunden oder sowas fragen :mrgreen: |
Re: Rechteck finden in Bild
Hallo Matthias,
wenn du die Rechtecke nach der von mir vorgestellten Methode identifiziert hast, dann kannst du deine Mittelpunkt-Koordinaten mit PtInRect() gegen die Liste der Rechtecke prüfen und so deine Komponentenliste aufbauen. Freundliche Grüße |
Re: Rechteck finden in Bild
Ist PtInRect ein Win-API
benutze Delphi, da ist mir der Befehl unbekannt ? Gruß Matthias |
Re: Rechteck finden in Bild
Ja, eine Funktion der WinAPI. Einfach die Unit Windows einbinden und er ist bekannt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz