- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何正确地将 OpenCV IplImage 转换为 OpenSceneGraph 的 osg::Image?
这是我目前的方法。但是我得到的颜色数据不正确。
// IplImage* cvImg is a webcam output image captured using cvQueryFrame(capture)
osg::ref_ptr<osg::Image> osgImage = new osg::Image;
osgImage->setImage(cvImg->width,cvImg->height, 3,
GL_RGB, GL_RGB, GL_UNSIGNED_BYTE,
(BYTE*)(cvImg->imageData),
osg::Image::AllocationMode::NO_DELETE,1);
最佳答案
这可能是一个涉及 OpenCV 的原生 BGR 色彩空间的问题。您没有提及您使用的是哪个版本的 OpenCV,但现代版本定义了 CV_BGR2RGB
用于 cvCvtColor .可能像这样进行转换
IplImage* pImg = cvLoadImage("lines.jpg", CV_LOAD_IMAGE_COLOR);
cvCvtColor(pImg, pImg, CV_BGR2RGB);
cvReleaseImage(&pImg);
如果你不能使用那个,另一个选项是使用 cvSplit分离和重新排序 channel ,然后将它们与 cvMerge 组合.
附带说明一下,我肯定会推荐使用 C++ 接口(interface),因为它更容易进行内存管理,并且比 C 接口(interface)具有更多的功能。
希望对您有所帮助!
关于opencv - 将 IplImage 转换为 osg::Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876706/
我正在尝试在我的应用程序中的平视显示器 (HUD) 中绘制一个指南针。我已经成功地将场景中的指南针渲染为带纹理的几何体。问题是当我尝试使用 osg::MatrixTransfrom 和 osg::Ma
我在 Qframe 中集成了一个 osgQt::GLWidget 并使用了这里的模式:http://trac.osgeo.org/ossim/browser/trunk/ossimPlanetQt/s
我需要从我的查看器中捕获图像,并需要进行一些后期处理并将其显示回其上。 现在我对它的第一部分更感兴趣。即从查看器中捕获图像。 在浏览 OSG 时,我遇到了 ScreenCaptureHandler。
我有一个 500x500 像素的图像,我将其作为 Texture2D 转换为 GLSL,并将原始数据返回给 C++/OSG。我遇到了纹理坐标问题(GLSL 上的坐标从 0 到 1)。有人可以帮我解决这
我想在 OSG 中创建一个动态球体,通过在该位置(中心)单击鼠标左键并使用鼠标指针当前位置到中心的距离的动态半径来创建(移动).... 我明白,出于这个原因,我需要创建一个 osgGA::GUIEve
我正在编写一个基于 OpenSceneGraph 的程序,该程序使用两个摄像头,一个用于为用户呈现预览,另一个使用回调通过 MRT 制作屏幕截图。导出器相机使用正交投影,并且始终从具有相同 View
我有一个简单的 OSG 程序,它制作 x、y 轴并随机化该轴内的点。目的是这将导致制作激光扫描数据的 3d 查看器。 (我知道它以前做过,但我们需要它重量超轻)。这是代码: #include #in
我需要在 OpenSceneGraph 中的风景上方设置一个点源,它会像太阳一样。我已经知道如何设置灯光,并且可以用这种方式完成: //LIGHT CODE ---------------------
对于增强现实应用程序,我正在使用一些 slam 算法来预测我手机的当前方向。 算法 ( LSD-Slam ) 以 SE3 谎言组的形式提供当前姿势(使用 Sophus::Sim3f )。如果我做对了,
我正在尝试通过使用 osgGA::AnimationPathManipulator 将 osg::AnimationPath 应用于我的 osgViewer::Viewer 实例的相机。我的问题是 A
所以我将 PCL 用于点云内容,将 OpenSceneGraph 用于可视化。 PCL 可视化非常糟糕,所以我自己制作了。不管怎样,每当我尝试使用这个语句时 pcl::io::savePCDFileB
我正在使用 OSG 渲染点云。我遵循了 OSG 说明书中标题为“使用绘制实例渲染点云数据”的示例,该示例展示了如何使用多个实例制作一个点,然后通过纹理将点位置传输到显卡。然后它使用着色器将点从纹理中拉
我有一个应用程序可以在 OpenCV 窗口(使用 imshow)中显示(已处理的)网络摄像头输出,并且在不同的线程中,还有一个显示一些几何图形的 OSG 窗口。问题是只要 OSG 窗口在刷新,Open
那么有没有一种快速的方法可以将.dae 文件(COLLADA)转换为.osg(OpenSceneGraph)文件? 最佳答案 您有 collada 加载器插件和标准命令行 osg 实用程序吗?如果是这
那么有没有一种快速的方法可以将.dae 文件(COLLADA)转换为.osg(OpenSceneGraph)文件? 最佳答案 您有 collada 加载器插件和标准命令行 osg 实用程序吗?如果是这
我修改了osgViewerQt example为了加载点云并在 Qt 应用程序中可视化它。正如您在附图中看到的那样,显示了云点云,但窗口中有一个额外的边框(见箭头)。 我整个周末都在想办法“扩展”窗口
在我的 OpenSceneGraph 程序中,我有以下代码: osg::GraphicsContext::WindowingSystemInterface* wsi = osg::GraphicsCo
如何正确地将 OpenCV IplImage 转换为 OpenSceneGraph 的 osg::Image? 这是我目前的方法。但是我得到的颜色数据不正确。 // IplImage* cvImg i
首先,我必须为我的英语道歉。 我正在开发一个应用程序,我们必须在每个时刻知道每个节点的属性(位置、旋转...),所以我考虑从场景图中获取每个节点的变换矩阵。 我遇到的问题是我不知道该怎么做。例如,如果
我正在使用 VC++ 和 OSG 开发 3D 环境,我需要一些帮助 我正在使用下面的代码为场景的 3D 模型充电 mueble00Node = osgDB::readNodeFile("Mod
我是一名优秀的程序员,十分优秀!