• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Pattern in Bild finden

DarkHell

Neu angemeldet

Registriert
22 Aug. 2013
Beiträge
25
Hi ich hab ein kleines Problem,

ich suche einen Ansatz wie ich am schnellsten in einem Bild (RGB) ein spezielles Muster/Pattern finden kann.
Irgendwie ist das blöd zu beschreiben, daher hab ich schnell ein Beispiel Bild gemacht von dem Pattern und eben zwei Positionen wo das sein kann...
Hintergrund ist, dass ich Hunderte Bilder habe und ein Symbol zwar sicher auf dem Bild ist, jedoch immer an anderer stelle sein kann. Ich brauche was daneben steht. (Deshalb muss ich die Position finden).
suche.png

Ich habe nun drei ansätze versucht.

1. mit getpixel -> sehr sehr langsam und eigentlich einfach unpraktikabel
2. mit AForge.NET Framework-2.2.5, dort kann ich zwar ein Kreis in einem Bild ohne probleme finden, jedoch ist mein Symbol kein kreis.
3. das Bild raw vergleichen, jedoch ist es sehr sehr verwirrend mir dann wieder auf meine Pixelposition in dem Bild zu gelangen. (weil die muss ich mir merken).

Leider komme ich mit keinem der ansätze klar, hat mir eventuell irgendeiner einen Lösungsansatz, mir fällt seit Tagen nichts ein und ich finde im Internet auch nichts vernünftiges...
Sprache mit der ich es Umsetzen möchte (da das restliche Programm in MS Visual Studio geschrieben ist) wäre C#.

Falls aber jemand in einer anderen Sprache eine Idee hätte, wäre ich natürlich auch happy =).

Danke schon mal,

€dit: Scheint als ob das Bild nicht angezeigt wurde?!

Gruß,
 
Zuletzt bearbeitet:

DarkHell

Neu angemeldet

Registriert
22 Aug. 2013
Beiträge
25
  • Thread Starter Thread Starter
  • #3
sieht man es nicht ? ich habs mal anderst hinzugefügt zwischen (Deshalb muss ich die Position finden). & Ich habe nun drei ansätze versucht. sollte es sein
 

evillive

EXIL

Registriert
24 Juli 2013
Beiträge
930
@DarkHell:

ist der Rest des Bildes leer, so wie in deinem Beiispiel?

wäre gut wenn du Original Beispiele zeigen könntest...
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.507
Immer etwas verdächtig
"Ich habe hier bilder und will die Wasserzeichen entfernen ein nicht näher beschriebenes Muster auf dem Bild finden. Konkretes Beispiel kann ich leider nicht angeben weil ihr mir dann vermutlich nicht mehr helfen wollt.
:D
 

Kampfmelone

süß und saftig

Registriert
22 Juli 2013
Beiträge
590
Mein Ansatz wäre jetzt alle Möglichen Positionen Pixelweise zu vergleichen, das meinstest du wahrscheinlich mit "getPixel"? Klar dauert das ein Wenig, sollte aber je nach Auflösung der Bilder im Rahmen bleiben. Probleme bekommst du aber, wenn das Logo/Suchmuster nicht immer exakt gleich ist, z.B. wegen Transparenz oder sogar schon von JPEG Komprimierung. Dann müsste man wahrscheinlich die Ähnlichkeit der Pixel bewerten, was wahrscheinlich noch mal Rechenaufwändiger wird.

@BurnerR: Ich denke nicht dass sich durch diese Technik Wasserzeichen gut entfernen lassen, das Problem ist ja nicht das finden des Symbols sondern das Füllen des verdeckten Bereichs. Des weiteren denke ich dafür gibt es schon genügend Tools :D
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.507
das Problem ist ja nicht das finden des Symbols sondern das Füllen des verdeckten Bereichs.
Ist das so? Meinem empfinden nach wäre die Identifizierung ein zwangsläufiger Schritt.

Aber gut. Offenbar gibt es ein Programm drumherum und die Frage ist an sich schon interessant genug das man darüber sprechen kann.
Dann müsste man wahrscheinlich die Ähnlichkeit der Pixel bewerten, was wahrscheinlich noch mal Rechenaufwändiger wird.
Das ist potenziell nicht nur aufwändiger, sondern ein eigenes Teilproblem. Das erste was einem da einfällt ist die Wahl eines geeigneten Farbraumes wie z.B. HSV.


Das Problem fällt in den Bereich Maschinelles Sehen / Computer Vision, Objekterkennung.
Diverse Algorithmen wurden und werden in dem Bereich entwickelt. Eine größere C/C++ Bibliothek ist opencv.
 

DarkHell

Neu angemeldet

Registriert
22 Aug. 2013
Beiträge
25
  • Thread Starter Thread Starter
  • #8
Hey,

ne es ist nichts illegales oder der gleichen, das sind in der Firma Prüfbilder von einem AOI, dort werden leiterplatten Nutzen eingelesen und überprüft, wenn etwas Falsch ist wird an die Stelle ein Pfeil gesetzt mit dem StationsLogo. Ich möchte nun die ganzen Bilder mal Auswerten lassen und mir eine Statistik darüber machen was für Bauteile / Stellen hauptsächlich Fehler verursachen um da dagegen etwas zu unternehmen (das kann das AOI Leider nicht von haus aus ..). Das Logo dass ich finden möchte ist auch nicht Transparent oder irgendwas sondern ist 3 Farbig immer gleich und on Top. Wie gesagt wenn ich mir das Bild in ein BMP Wandle, und dann das Logo Raw suchen lasse Funktioniert das schon, nur komm ich dann nicht auf die Pixelposition und auch nicht an die Daten neben dran.

Wir haben das schon über Ferienjobber Auswerten lassen, aber erstens sind das massen an Bildern, dann das die das dann in eine Datenbank eintragen ist einfach sehr Fehlerträchtig.

@Kampfmelone, das Problem ist es kann an jeder Position von dem Bild sein, daher ist es untragbar langsam und dauert pro Bild ca 30 Sekunden und ist auch noch anfällig.
@evillive leider kann ich die nicht Hochladen, da sie aus der Firma sind und ich von dort keine Daten rausnehmen darf (hat nichts mit nicht wollen zu tun sondern mit dem Arbeitsvertrag :)).
@BurnerR ich hab bislang eben AForge.NET probiert (damit krieg ich die Erkennung von Kreisen ohne Probleme hin aber eben nicht von sonderformen), aber scahu mir mal das opencv an danke :)

Man kann sich das ganze vorstellen wie ein Foto von einer "Landschaft" und irgendwo ist ein Stempeldrauf (der ist Scharf und nicht verpixelt). Also es sind unten immer unterschiedliche Bildinhalte (unterschiedliche Produkte).

Gruß,
 

evillive

EXIL

Registriert
24 Juli 2013
Beiträge
930
Mein Ansatz wäre jetzt alle Möglichen Positionen Pixelweise zu vergleichen, das meinstest du wahrscheinlich mit "getPixel"? Klar dauert das ein Wenig, sollte aber je nach Auflösung der Bilder im Rahmen bleiben.



ein Möglichkeit wäre ja alle Bilder zu verkleinern. Da müsste man halt eine optimale Größe finden..

@DarkHell

kannst du nicht ein ordentliches Beispiel zeigen? Es wird doch nicht so einfach sein, wie in deiner Skizze oder? Also schwarz weiß wird es wohl nicht sein. Und es wird wohl auch nicht nur dein Pattern zu sehen sein. Man muss eigentlich schon wissen welche Objekte sich im Hintergrund befinden, welche Objekte im Vordergrund sind...
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.507
Wie gesagt, für solche Aufgaben denkt man sich nicht selber "mal eben" einen Algorithmus aus, sondern greift auf bestehende zurück.

ich hab bislang eben AForge.NET probiert (damit krieg ich die Erkennung von Kreisen ohne Probleme hin aber eben nicht von sonderformen
Dann hast du höchstwahrscheinlich die Dokumentation bestenfalls überflogen. AForge bietet soweit ich das sehe diverse Algorithmen dafür an. Meines erachtens nach wird jede CV Bibliothek entsprechende Algos anbieten. Wenn ich dich recht verstehe ist das gesuchte Muster nicht transformiert auf den Bildern, sondern 1:1.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Es gibt einige Ansätze Shortespath's durch Bilder zu berechnen, die du eventuell verwenden könntest. Eine andere Idee wäre dich auf Kantenerkennung zu beschränken.
 

Maxwell

NGBler

Registriert
15 Juli 2013
Beiträge
670
Sowas macht man eigentlich im Frequenzbereich (Stichwort 2D-FFT). Direkt die Pixel angucken geht natürlich auch, ist aber eher langsam und wenig robust.
Mein persönlicher Ansatz wäre, den Algorithmus in Matlab zu entwickeln (Image Processing Toolbox) und daraus Code zu generieren. Ich vermute allerdings, dass das genannte Framework (AForge) diese Funktionalität auch bietet, habe damit aber keine Erfahrung.
 

DarkHell

Neu angemeldet

Registriert
22 Aug. 2013
Beiträge
25
  • Thread Starter Thread Starter
  • #13
Hey @ll,

danke für die vielen Posts. Ihr bestätigt mir wenigstens, dass ich nicht zu doof war was total Simples einfach nicht zu finden *ggg*.

Ich werde mich mal weiter mit AForge beschäftigen, ist ja schon ein mächtiges Tool :)

Sowas macht man eigentlich im Frequenzbereich (Stichwort 2D-FFT). Direkt die Pixel angucken geht natürlich auch, ist aber eher langsam und wenig robust.
Mein persönlicher Ansatz wäre, den Algorithmus in Matlab zu entwickeln (Image Processing Toolbox) und daraus Code zu generieren. Ich vermute allerdings, dass das genannte Framework (AForge) diese Funktionalität auch bietet, habe damit aber keine Erfahrung.

@Maxwell, die FFT kenn ich nur um zu Überprüfen OB es überhaupt vorhanden ist und nicht wo. Wie kann ich darüber die Pixelposition ermitteln?!? Gut ich könnte bereiche durchfahren wo ich sag es muss dann in dem Bereich liegen aber hmm . Oder steh ich da noch auf dem Schlauch? Werd mich auch da mal weiter einlesen. Danke für die Anregungen :)
 

Maxwell

NGBler

Registriert
15 Juli 2013
Beiträge
670
Du kannst die Korrelation von deinem Bild und dem gesuchten Muster berechnen. An der Position des Musters wird es einen hellen Peak geben. Dieses Maximum kannst du dann einfach suchen.
 
Oben