У меня есть сетчатая модель, и, используя VTK, отобрал ее из данного положения камеры (x, y, z). Я могу сохранить это на изображение RGB (640x480), но я также хочу сохранить карту глубины, где каждый пиксель хранит значение глубины от камеры. < /p>
Я пытался использовать значения zbuffer < /code>, заданные окном рендеринга, следуя этому примеру. Проблема заключается в том, что Zbufer сохраняет только значения в диапазоне [0,1]. Вместо этого я пытаюсь создать изображение синтетического диапазона, где я храню глубину/расстояние каждого пикселя от камеры. Аналогично изображению, создаваемому Kinect, я пытаюсь создать один с определенной точки зрения модели сетки.string mesh_filename = "mesh.ply";
vtkSmartPointer mesh_reader = read_mesh_ply(mesh_filename);
vtkSmartPointer mapper = vtkSmartPointer::New();
mapper->SetInputConnection(mesh_reader->GetOutputPort());
vtkSmartPointer actor = vtkSmartPointer::New();
actor->SetMapper(mapper);
vtkSmartPointer renderer = vtkSmartPointer::New();
vtkSmartPointer renderWindow = vtkSmartPointer::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetSize(640, 480);
vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
//Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(1, 1, 1);
< /code>
Создайте камеру и поместите ее где -нибудь < /strong> < /p>
vtkSmartPointer camera = vtkSmartPointer::New();
renderer->SetActiveCamera(camera);
camera->SetPosition(0,0,650);
//Render and interact
renderWindow->Render();
< /code>
получить результат из z -буфера < /strong> < /p>
double b = renderer->GetZ(320, 240);
< /code>
В этом примере это дает 0,999995. Поскольку значения находятся между [0,1], я не знаю, как это интерпретировать, так как вы видите, что я установил камеру на 650 единиц на оси Z, поэтому я предполагаю, что Z-расстояние в этом пикселе (который находится на объекте в рендерированном RGB) должно быть близко к 650.
Подробнее здесь: https://stackoverflow.com/questions/176 ... each-pixel
Получить глубину от камеры для каждого пикселя ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1757311771
Anonymous
У меня есть сетчатая модель, и, используя VTK, отобрал ее из данного положения камеры (x, y, z). Я могу сохранить это на изображение RGB (640x480), но я также хочу сохранить карту глубины, где каждый пиксель хранит значение глубины от камеры. < /p>
Я пытался использовать значения zbuffer < /code>, заданные окном рендеринга, следуя этому примеру. Проблема заключается в том, что Zbufer сохраняет только значения в диапазоне [0,1]. Вместо этого я пытаюсь создать изображение синтетического диапазона, где я храню глубину/расстояние каждого пикселя от камеры. Аналогично изображению, создаваемому Kinect, я пытаюсь создать один с определенной точки зрения модели сетки.string mesh_filename = "mesh.ply";
vtkSmartPointer mesh_reader = read_mesh_ply(mesh_filename);
vtkSmartPointer mapper = vtkSmartPointer::New();
mapper->SetInputConnection(mesh_reader->GetOutputPort());
vtkSmartPointer actor = vtkSmartPointer::New();
actor->SetMapper(mapper);
vtkSmartPointer renderer = vtkSmartPointer::New();
vtkSmartPointer renderWindow = vtkSmartPointer::New();
renderWindow->AddRenderer(renderer);
renderWindow->SetSize(640, 480);
vtkSmartPointer renderWindowInteractor = vtkSmartPointer::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
//Add the actors to the scene
renderer->AddActor(actor);
renderer->SetBackground(1, 1, 1);
< /code>
Создайте камеру и поместите ее где -нибудь < /strong> < /p>
vtkSmartPointer camera = vtkSmartPointer::New();
renderer->SetActiveCamera(camera);
camera->SetPosition(0,0,650);
//Render and interact
renderWindow->Render();
< /code>
получить результат из z -буфера < /strong> < /p>
double b = renderer->GetZ(320, 240);
< /code>
В этом примере это дает 0,999995. Поскольку значения находятся между [0,1], я не знаю, как это интерпретировать, так как вы видите, что я установил камеру на 650 единиц на оси Z, поэтому я предполагаю, что Z-расстояние в этом пикселе (который находится на объекте в рендерированном RGB) должно быть близко к 650.
Подробнее здесь: [url]https://stackoverflow.com/questions/17659362/get-depth-from-camera-for-each-pixel[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия