6 Stimmen

Bildposition innerhalb eines größeren Bildes finden

Im Grunde möchte ich die Pixelposition eines kleinen Bildes innerhalb eines großen Bildes finden. Ich habe nach etwas Ähnlichem gesucht, aber kein Glück gehabt.

1voto

jakar Punkte 981

Es hängt davon ab, wie ähnlich das Ergebnis Ihrem Suchbild sein soll. Wenn Sie versuchen, entsprechende Teile verschiedener fotorealistischer Bilder abzugleichen, werfen Sie einen Blick auf die Erkennung von Merkmalen Wikipedia-Seite. Was Sie verwenden möchten, hängt von der Umwandlung ab, die Sie von einem Bild in das andere erwarten.

Wenn Sie jedoch nach einer exakten Pixel-für-Pixel-Übereinstimmung suchen, ist eine Brute-Force-Suche wahrscheinlich schlecht. Das kann sein O(m^2*n^2) für eine m*m Bild, das für die Suche innerhalb einer n*n Bild. Mit Hilfe besserer Algorithmen kann sie verbessert werden auf O(n^2) linear mit der Anzahl der Pixel. Ein Downsampling beider Bilder und eine hierarchische Suche könnten ein guter Ansatz sein.

0voto

brendan Punkte 28331

Sie können wahrscheinlich die AForge Rahmenwerk um so etwas zu tun. Es bietet eine Vielzahl von Bildverarbeitungswerkzeugen. Möglicherweise können Sie deren Blob-Extraktion verwenden, um Blobs zu extrahieren und diese Blobs dann mit einem gespeicherten Bild zu vergleichen und zu sehen, ob sie übereinstimmen.

0voto

driis Punkte 156110

Wenn die Bilder Pixel für Pixel gleich sind, können Sie damit beginnen, nach einem Pixel zu suchen, das die gleiche Farbe hat wie Pixel (0,0) im kleinen Bild. Wenn Sie ihn gefunden haben, vergleichen Sie jedes Pixel in dem Bereich, der von dem kleinen Bild abgedeckt wird. Wenn es keine Unterschiede gibt, haben Sie Ihre Position gefunden. Andernfalls beginnen Sie mit der Suche nach dem nächsten Pixel, das (0,0) entspricht.

0voto

Michael Dorgan Punkte 12265

Booyer-Moore Suche klingt hier wie eine Lösung, wenn Sie Ihre Pixel als Zeichen behandeln und nach einer genauen Übereinstimmung suchen. Es geht auch viel schneller als die Suche pro Pixel.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X