Ich arbeite mit einer vorhandenen Codebasis, die CVD images von einer Webcam vor der Verarbeitung erstellt. Mein Ziel ist es, Marker-Erkennung für Augmented Reality auf diesem Bild auszuführen, bevor der Rest der Verarbeitung geschieht, und ich plane, dies unter Verwendung ArUco zu tun. Das Problem ist, dass ArUco ein OpenCV-Bild aufnimmt, um die Marker zu erkennen.Konvertieren Sie ein CVD-Bild in ein Color OpenCV-Bild
Ich denke daran, dieses OpenCV-Bild manuell aus dem CVD-Bild zu erstellen, indem ich manuell auf jedes Pixel des CVD-Bildes zugreife und die RGB-Werte in ein neues OpenCV-Bild lege. Ich bin nicht sehr vertraut mit der Arbeit mit C++, aber es gibt sicherlich einen besseren Weg, dies zu tun?
Ja, Sie möchten auf jeden Fall das Bild ohne eine Kopie umwickeln, wenn überhaupt möglich. – aardvarkk
Das hört sich genau danach an, was ich machen möchte. Laut der CVD-Bilddokumentation kann ich den Wert jedes Pixels mithilfe des Operators [] dereferenzieren, aber ich finde nicht, wie ich den Startblock für das Bild abrufen kann. Von Ihrem Code oben rate ich Zeilen = Breite des Bildes, cols = Höhe und CV_8UC3 ist das Bildformat? Gibt es eine Dokumentation für die obige Funktion, damit ich herausfinden kann, welches Bildformat anwendbar ist? – Jkh2
siehe opencv.itseez.com für Dokumente, und finden Sie die Adresse des ersten Elements mit & Image [0,0]. CV_8UC3 steht für unsigned, 8 Bit (uchar ist der Standardbildtyp), 3 Kanäle (RGB). – Sam