gpt4 book ai didi

c++ - MRPT : Is is possible to get an image from a viewport?

转载 作者:搜寻专家 更新时间:2023-10-31 02:17:39 25 4
gpt4 key购买 nike

我正在尝试使用四处移动的相机来模拟一个简单的场景。如果我创建另一个视口(viewport),我可以操纵视口(viewport)的相机并在场景中移动它。

如何在视口(viewport)渲染场景中的所有对象后提取 CImage。

提前致谢

上传2

我正在使用 windows 并从 getLastWindowImage 获取灰色图像

我也尝试过离屏渲染方法,但它也返回一个灰色图像。我的目标是模拟连接到机器人的相机并处理返回的图像以提取特征和检测物体。

目前我的场景有一个 DisplayWindow3d,现在只是尝试从默认视口(viewport)获取图像。

            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 主题可能会导致图像捕获失败,从而产生灰色图像...在线搜索一些解决方案,或者使用替代的离屏渲染方法(参见 sample code)。

关于c++ - MRPT : Is is possible to get an image from a viewport?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com