![]() |
Scan (zylindrisches Objekt) aus Streifen zusammensetzen
Hallo,
kann mir jemand einen Hinweis auf ein Verfahren/Algorithmus/Buch/White-Paper/Open-Source geben, mit dessen Hilfe einzelne Streifen eines Bildes zu einem großen Bild zusammengesetzt werden können. Dabei will ich ausdrücklich kein Panorama zusammensetzen, sondern im Grunde das Gleich machen wie führere Handscanner, bei denen man eine Seite in mehreren Streifen gescannt hatte und durch die Software wieder zusammengesetzt wurde. Konkret will ich die Oberfläche von Gerätebatterien scannen. Zu diesem Zweck habe ich mir eine kleine per USB steuerbare Vorrichtung gebaut, die im Wesentlichen aus zwei angetriebenen liegenden Walzen und einer Kamera besteht. Auf den Walzen liegt die zu scannende Batterie und wird durch diese gedreht. Lotrecht dazu hängt eine Kamera mit fest eingestellter Brennweite/Focus - welche genau über der höchsten Linie des liegenden Zylinders liegt. Die ursprüngliche Idee war die, immer genau ein einen Pixel breites Bild aufzunehmen (bzw. einen ein Pixel breiten Ausschnitt des durch die Kamera erfassten Bildes zu speichern) und diese Streifen am Ende zusammen zu setzen. Durch verschiedene Beschränkungen und/oder mechanische Probleme (liegende Batterie wird nicht immer exakt gleich weit je Zeiteinheit gedreht) funktioniert das nur einigermaßen. Deshalb gehe ich jetzt dazu über, überlappende Streifen mit etwas größerer Ausdehnung zu erfassen. Bin für jeden Hinweis dankbar. Ha-Jö * Geschwindigkeit der Walzen, Frame-Rate der Kamera, Synchronisationsfehler zwischen beiden, manchmal auch die Verarbeitungsgeschwindigkeit der Software |
AW: Scan (zylindrisches Objekt) aus Streifen zusammensetzen
OT: Wieso 2 angetriebene Walzen? Reicht nicht 1?
M.E. ist das doch eine Panoramafunktion oder? Ich würde das wahrscheinlich gar nicht programmieren, sondern entsprechende Software unter Linux solange konfigurieren, bis es geht.Die Besonderheit wäre ja vermutlich das "exotische" Format/Seitenverhältnis der Rohdaten. Google Schnellschuss: ![]() Und: Ich weiß nicht wie gut die meisten Batterien so auf ihrem Minuspol stehen, aber da würd ich sie drauf stellen und die Drehachse damit vertikal haben. Funktioniert dann auch (mechnisch) für 9V Batterien und ich vermute weniger Wackler an der Blechnaht. |
AW: Scan (zylindrisches Objekt) aus Streifen zusammensetzen
=> die 360° Rotation teile man in 120 Steps, heißt man "erfasst" eigentlich nach deiner Definition nur jeweils 3Lines scharf (die Mitte und jeweils +/-1)
- erster Trick: den FixFocus auf die !+/- ZWEITE! Line zu legen!... wegen der da nur noch geringen Steigung zur Mitte und dem etwas größerem Gefälle im Kreisbogen sind da statistisch nur in etwas alle Lines von -4..0..+4(also 9Lines) gleich gewichtet unscharf - zweiter Trick: jeweils 3 Lines zusammen zufassen, zu normieren, und als Hash zu nehmen - dritter Trick: man suche von vorgeriger RandPos(4..9) den besten Match zun Anfang des aktuellen Bildes(1..6) => so bekommt man eine optimale kontinuierliche Folge von Scanlines, welche zusammen relativ unabhängig von der exakten Winkelgenauigkeit der Aufnahme, zusammengesetzt ein der Realität gut entsprechendens endlos 360° Bild ergeben => nun noch Anfang und Ende deiner Batterie längs finden und passend "Clippen" => zum Schluss einen eindeutigen Marker auf dem Umfang im Bild finden, und das zum Anfang des Bildes machen(also da Clippen und das dort abgeschnittene hinten gespiegelt wieder anhängen) nun hast du das perfekte QS System für deine Batterien und jede gängige Bildvergleichssoftware sagt dir dazu weil ja nun stets quasi 1:1 Vergleich "OK/Fail":) |
AW: Scan (zylindrisches Objekt) aus Streifen zusammensetzen
Zitat:
Zitat:
Dadurch kommt es vor, dass zwei aufeinander folgende Bilder exakt gleich sind. Die von mir getesteten Programme mögen das gar nicht. Eine mögliche Lösung wäre größere Auschnitte zu wählen, dann hätte ich aber andere Nachteile in Kauf zu nehmen. Ich müsste beispielsweise mit höherer Auflösung arbeiten um damit zu kompensieren das ich dann ich einen größeren Abstand (und oder eine andere Brennweite) zwischen Objektiv und Batterie wählen müsste. Es könnte bzw. wird bei größeren Auflösungen und metallischen Oberflächen ganz sicher passieren das ich Glanzlichter auf den Oberflächen habe, bei meiner 1 Streifen Lösung ist die Beleuchtung des betrachteten Streifens, und damit das ganze zusammengesetzte Bild, immer gleich und homogen. Außerdem müsste ich, je nach Ausschnittsgröße das entstandene Bild noch entzerren (also die runden Ecken wieder geradebiegen). Wenn ich es gar nicht hinbekomme, dann werde ich das am Ende so machen, aber eigentlich wäre mir meine 1 Pixel/Streifenlösung lieber weil da per Definition eigentlich keine Abbildungsfehler auftauchen. Trotzdem Danke. Zitat:
cu Ha-Jö |
AW: Scan (zylindrisches Objekt) aus Streifen zusammensetzen
Zitat:
Natürlich kann man das so abbilden das ich daraus ein Bild mit 360 Pixeln Höhe erhalte, das bedeutet dann aber auch das als Ausgabe alle Formate, also A, AA, AAA und AAAA gleich groß erscheinen. Trotzdem könnte mich das der Lösung näherbringen, wenn ich mit einem (gedachten) auf 360 Pixeln skalierten Bild arbeite und alle Operationen die ich darauf mache, parallel im "Original" nachvollziehe, also mit einer aus zwei Bildern bestehenden Bildpyramide arbeite. Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Danke Ha-Jö |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz