Ist das überhaupt möglich? Ich habe ein riesiges Bild, 80 MB, mit vielen kleinen Bildern. Sie sind auch noch gekippt und gedreht. Wie kann ich mit Programmierung nach einem Bild suchen? Ich weiß, wie man Java und C++ benutzt. Wie würden Sie das anstellen?
Antworten
Zu viele Anzeigen?Sie sollten sich über den Scale Invariant Feature Transform (SIFT)-Algorithmus informieren. Er wird zum Beispiel in einer ganzen Reihe von Programmen zur automatischen Erstellung von Panoramen verwendet, um die Teile von Bildern zu erkennen, die trotz unterschiedlicher Skalierung, Neigung, Schwenkung usw. übereinstimmen.
Edit: Das stimmt - es ist patentiert, und ich hätte das wahrscheinlich gleich zu Beginn erwähnen sollen. Falls es jemanden interessiert, es ist das US-Patent # 6,711,293 .
Ein Algorithmus, den ich bereits verwendet habe, ist SIFT . Wenn Sie daran interessiert sind, den Algorithmus selbst zu implementieren, können Sie sich Kursnotizen für CPSC 425 an der UBC die in aller Ausführlichkeit beschreibt, wie SIFT in MATLAB implementiert wird. Wenn Sie einfach nur Code benötigen, der diese Aufgabe erfüllt, schauen Sie sich Folgendes an VLFeat , eine C-Bibliothek, die SIFT und eine Reihe anderer Algorithmen verwendet.
Angebot von Jerry Coffin:
Edit: Das stimmt - es ist patentiert, und ich hätte das wahrscheinlich gleich zu Beginn erwähnen sollen. Falls es jemanden interessiert, es ist das US-Patent # 6,711,293 .
Wie viel wissen Sie über das Bild? Wie genau sieht es aus? Haben Sie eine Kopie des Bildes und müssen Sie nur herausfinden, wo im großen Bild es ist?
Der Zweig der Informatik, der sich mit dieser Art von Fragen beschäftigt, heißt jedenfalls Computer Vision .
Lebenslauf öffnen y TINA sind zwei Open-Source-Bibliotheken, die Sie möglicherweise verwenden können.
Sie sollten wahrscheinlich mit den einfachsten Ideen beginnen und sehen, ob sie für Ihre Bedürfnisse ausreichend sind. Auf dem Gebiet des Musterabgleichs ist die einfachste Idee die der Vorlagenabgleich . Eine effiziente Implementierung des Vorlagenabgleichs findet sich in OpenCv .
Beachten Sie, dass der Vorlagenabgleich eine Rotationsvariante ist, d. h., wenn die Vorlage, die Sie abgleichen möchten, in dem Bild, in dem Sie sie zu finden versuchen, gedreht werden kann, wird es nicht funktionieren, es sei denn, Sie drehen die Vorlagen vorher.