2017-07-27 2 views
0

Ich möchte die Kameradaten von der Tango-Kamera als Bilddatei speichern. Ich bin nicht sicher, wo ich anfangen soll, die nächste Frage, die ich finden könnte, ist diese: Getting Tango's camera stream dataTango-Kameradaten als Bild speichern

Andere Fragen + Antworten sehen aus wie sie veraltet sind.

Ist dies für mich anwendbar? Oder kann ich einfach die Textur von ITangoCameraTexture bekommen und diese als Bilddatei speichern?

Gibt es auch eine Möglichkeit, die Bildrate der Tango-Kamera einzustellen?

Antwort

1

Ihr Skript sollte ITangoVideoOverlay erben und OnTangoImageAvailableEventHandler implementieren, wobei das Bild unter TangoUnityImageData imageBuffer als Bytearray (imageBuffer.data) gespeichert wird. Das Bild ist im YUV-Format, so dass Sie es in RGB oder ein anderes Format konvertieren müssen.

private void SaveImage(byte[] byteArray, string datetime) 
{ 
    ... 
    TextureFormat format = TextureFormat.RGBA32; 
    Texture2D x = new Texture2D(1920, 1080, format, false); 
    Color32[] argbArray = ColorHelper.YUV_NV21_TO_RGB(byteArray, 1920, 1080); 
    x.SetPixels32(argbArray); 
    File.WriteAllBytes(PATH + datetime + "_image.jpg", x.EncodeToJPG()); 
    ... 
} 

Natürlich Größe nicht hart codiert werden soll, aber dies funktioniert nur im Gang (imageBuffer hat Werte für Breite und Höhe).

+0

Mache ich das richtig? Der Textfeldtext ändert sich nie und ich möchte sicherstellen, dass ich die Daten tatsächlich erhalte. Öffentliche Klasse GetCameraFrame: MonoBehaviour, ITangoVideoOverlay { \t öffentliche Byte [] Daten; \t öffentliche UnityEngine.UI.Text Textfeld; \t public void OnTangoImageAvailableEventHandler (Tango.TangoEnums.TangoCameraId cameraId, Tango.TangoUnityImageData imageBuffer) \t { \t \t data = imageBuffer.data; \t \t textbox.text = data.ToString(); \t } } ' – thorey

+0

ich es herausgefunden, vergessen zu der Tango-Anwendung in Start() – thorey

+0

registriere Wo diese Funktion ColorHelper.YUV_NV21_TO_RGB definiert ist? –