MRPT:可以从视口获取图像
MRPT: Is is possible to get an image from a viewport?
我正在尝试用一个四处移动的相机模拟一个简单的场景。如果我创建另一个视口,我可以操纵视口的摄像机并在场景中移动它。
如何在视口渲染场景中的所有对象后提取 CImage。
提前致谢
上传 2
我正在使用窗口并从getLastWindowImage获取灰色图像
我也尝试了屏幕外渲染方法,但它也返回灰色图像。我的目标是模拟连接到机器人的相机并处理返回的图像以提取特征和检测对象。
目前,我的场景有一个DisplayWindow3d,现在只是尝试从默认视口获取图像。
mrpt::opengl::COpenGLScenePtr &theScene = vis->get3DSceneAndLock();
vis->unlockAccess3DScene();
//Create a rendered
mrpt::opengl::CFBORender render(800,600);
//Create an image
mrpt::utils::CImage frame(800, 600, 3, false);
render.getFrame2(*(theScene.pointer()), frame);
它可以像这样完成:
mrpt::gui::CDisplayWindow3D win;
//... fill your 3D scene
while (win.isOpen())
{
// Start capturing:
win.captureImagesStart();
// Get screenshot:
mrpt::utils::CImage img;
bool capture_ok = win.getLastWindowImage(img);
// Do whatever to img
// Loop
mrpt::system::sleep(1);
}
但是,请注意,某些 Windows 主题可能会使图像捕获失败,从而产生灰色图像...Google 在线提供某些解决方案,或者使用替代的屏幕外呈现方法(请参阅示例代码)。
相关文章:
- C++win32 API创建多个类似视口的窗口
- 使用C++在Qt3D中创建多个视口时出现问题
- 创建具有两个视口的Qt3D C++场景,其中显示适当的不同网格
- 尝试在虚幻引擎中通过C++添加视口时出错"No instance of overloaded function CreateWidget"
- 无法添加视口虚幻C
- C++ GLUT 使对象在视口外消失
- 总是从串行端口获取 254
- 如何在单独的视口和默认的framebuffer中使用framebuffer
- 在 C++.NET 中使用 OpenGL 并在视口上绘画
- VTK 定位摄像机以用对象填充视口
- 在 opengl 中视口的一角绘制世界坐标系
- 如何在 SDL2.0 OpenGL 中调整视口大小
- 在显示之前获取 QScrollArea 视口的大小
- 视口内的 OpenGL 视口
- MRPT:可以从视口获取图像
- OpenGL 'reshape()'函数视口边框背景
- OpenGL:多个重叠视口闪烁
- 从 USB 端口获取 USB 设备路径
- 如何为视口应用程序重新采样图像的子区域
- Opengl和DirectX视口和渲染目标