Видеопоток Hololens с пространственными данными

#c# #image-processing #camera #hololens

#c# #обработка изображений #камера #hololens

Вопрос:

Я использую hololens и пытаюсь сохранить видеопоток с доступными матрицами мира / проекции. Я пытался просто сделать последовательность снимков и сохранить данные, но я не могу найти способ сохранить изображение и матрицы.

При сохранении на диск нет возможности получить фотокадр (который содержит данные матрицы), при сохранении в память я, похоже, не могу сохранить изображение на диск. Я попытался использовать следующий метод, но, похоже, это привело к сбою моей программы unity:

 List<byte> imageBufferList = new List<byte>();
photoCaptureFrame.CopyRawImageDataIntoBuffer(imageBufferList);
byte[] myArrayImage = imageBufferList.ToArray();
  

А затем используйте это для преобразования массива байтов:

 using (MemoryStream mStream = new MemoryStream(byteArrayIn))
return Image.FromStream(mStream);
  

После чего я сохраняю результат.

Когда я удаляю функцию memorystream, программа не аварийно завершает работу (но и не сохраняет мое изображение).

Я искал по всему Интернету, но есть много расплывчатых заявлений об этом: а) это невозможно б) использование memorystream (но это приводит к сбою)

Есть предложения? Если кто-нибудь знает способ сохранить все матричные (проекционные и мировые) данные за кадр и соответствующий кадр для видеопотока, это было бы большим подспорьем.

Редактировать: я также пытался изучить https://github.com/VulcanTechnologies/HoloLensCameraStream но, похоже, это создает проблемы с более новыми версиями Unity. Есть замечания по этому поводу?

Чтобы прояснить мою конечную цель: при съемке программа должна сохранять все кадры и соответствующие матрицы, например:

Frame_01, Frame_02, Frame_03, … (.jpg/png/…)

World_matrix_01, World_matrix_02, … (.txt)

Projection_matrix_01, Projection_matrix_02,… (.txt)

Комментарии:

1. Что ж, поскольку я не нашел способа исправить эту проблему в более поздних версиях Unity / visual studio, я просто оставлю это здесь для других людей. Я использовал Unity5.6.3, чтобы получить github.com/VulcanTechnologies/HoloLensCameraStream работает. Это позволило мне получить необходимую информацию. Если кто-нибудь найдет способ использовать более свежие версии unity, пожалуйста, дайте мне знать 🙂

Ответ №1:

Редактировать: я также пытался изучить https://github.com/VulcanTechnologies/HoloLensCameraStream но, похоже, это создает проблемы с более новыми версиями Unity. Есть замечания по этому поводу?

Я использовал его, и он очень хорошо работал в Unity 2018.3.13f1. Вы можете тестировать в Hololens только в режиме отладки.