Capture RGB von Kinnect mit Openni und Show mit OpenCV

8

Ich muss das Farb-RGB-Bild von einer Kinnect-Kamera aufnehmen, aber ich möchte es in OpenCV zeigen, da dies nur ein Teil eines größeren Programms ist. Ich weiß, dass OpenCV Kompatibilität mit OpenNI hat, wenn Sie das Flag setzen, aber obwohl ich versuchte, konnte CMake den Pfad zu OpenNI2 nicht finden, also konnte ich OpenCV mit OpenNI nicht bauen. Wie auch immer, ich denke, es ist gut zu wissen, wie man OpenNI-Frames manuell in openCV-Frames konvertiert, also habe ich beschlossen, diesem Weg zu folgen.

Um den Farbrahmen in OpenNI zu erfassen, habe ich Folgendes versucht:

%Vor%

Aber jetzt verstehe ich nicht, wie man die Umwandlung zu cv :: Mat macht.

Hat jemand das geschafft?

    
vgonisanz 12.04.2013, 08:38
quelle

2 Antworten

11

Ok, zuerst sollten Sie auf diese Weise die Initialisierung von der Schleife zum Lesen von Frames trennen.

Initialisierung

%Vor%

Jetzt kommt die Hauptschleife zum Lesen von Frames. Sie haben fast alles gemacht, das einzige, was übrig bleibt, ist den Puffer auf die openCV-Matte zu kopieren.

Schleife zum Lesen von Frames

%Vor%     
Jav_Rock 12.04.2013, 09:03
quelle
1

Nach der obigen Antwort von @ Jav_Rock ist die Lösung für IR und Tiefe ähnlich, abgesehen von den folgenden (anstelle von SENSOR_COLOR , CV_8UC3 bzw. RGB888Pixel ):

Tiefe

  • Sensortyp: SENSOR_DEPTH
  • OpenCV-Typ: CV_16UC1
  • VideoFrameRef-Daten: DepthPixel

Beachten Sie, dass Sie den PixelMode für das VideoFormat des VideoStreams wahrscheinlich auf PIXEL_FORMAT_DEPTH_100_UM setzen möchten, da ansonsten Ihr Tiefenbild sehr schwarz aussieht.

IR

  • Sensortyp: SENSOR_IR
  • OpenCV-Typ: CV_16UC1
  • VideoFrameRef-Daten: Grayscale16Pixel

Beachten Sie schließlich, dass weder Tiefe noch IR den Aufruf cv::cvtColor benötigen.

    
Michael Gratton 09.03.2017 03:25
quelle

Tags und Links