我有一堆2D图像,我想将其转换为一个3D图像

时间:2013-11-06 15:24:21

标签: c++ image opengl 3d 2d

我需要在我的C ++应用程序中显示3D图像。我从同一点获得了一些物体的2D切割图像。

是否有可以帮助我的图书馆例如从8张图片创建模型?实际上我正在使用OpenGL,但我不确定它是否足够。

我知道,也有程序可以做到这一点,例如insight3d或GPU Gems。但我想在我自己的C ++应用程序中完成它。 (或者Java会更好?)

以下是我正在使用的2D图片的一些示例。

在OpenGL中进行3D切割。我在图片中找到了区域的边界(边缘检测),将坐标放在Vector(X和Y)中,然后为不同Z轴上的每个图片绘制GL_points。我创建了一个图像骨架,但它不是一个3d对象。

enter image description here

2 个答案:

答案 0 :(得分:1)

很难判断您的问题是针对游戏还是只是以3D形式查看图像。如果只是为了查看图像,VTK具有Java和C ++扩展。 VTK具有学习曲线,但是是用于医疗和体积成像的强大3D渲染工具。它适用于Qt,因此您可以轻松构建一个漂亮的GUI。

ImageJ还有一些用于3D查看的Java扩展。

如果你想深入研究内部工作原理,两者都是免费的并提供完整的源代码。

附件是一堆MicroCT PNG图像,我使用VTK在3D中渲染。

祝你好运!

enter image description here

答案 1 :(得分:0)

嗨Thamiar在考虑了一点之后我可能会使用行进立方体算法将切片显示为3d,您可以尝试查看 Marching cubes algorithm tutorial ,这非常简洁并且记录得相当充分,图片看起来与您正在寻找的相似。还有另一个网站 here ,它提供了很多信息,也有一些供您查看的资源。

如果我可以继续提供帮助,请告诉我,我会尝试。