#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 только в режиме отладки.