gpt4 book ai didi

c++ - vtk 将 2d 图像转换为 3d (c++)

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:26 24 4
gpt4 key购买 nike

我已经阅读了 doxygen 和 vtk wiki 好几天了,但我仍然不能 100% 确定我的问题是否可行。

我想要完成的是采用通用格式(即 PNG)输入 2d 图像并输出 3d 模型(PNG -> 模型/网格或 2d -> 3d)。一个很好的例子是,如果我在 MS Paint 中绘制一个立方体并将绘图保存为 PNG,然后读取图像并生成该立方体的 3d 模型。所以我的第一个问题是这可能吗?看起来应该有某种方法可以获取图像数据并将其转换为多数据,然后从那里进行模型构建。这就是我的想法(在 C++ 中):

int main(int argc, char *argv[])
{
//Verify correct number of input arguements
if(argc < 2)
{
fprintf(stderr, "Usage: %s Filename(.png)\n");
return EXIT_FAILURE;
}
std::string fileName = argv[1];
//Read file
vtkSmartPointer<vtkImageReader2Factory> readerFactory = vtkSmartPointer<vtkImageReader2Factory>::New();
vtkImageReader2 *imageReader = readerFactory->CreateImageReader2(inputFilename.c_str());
imageReader->Update();

//Get the image Data
vtkSmartPointer<vtkImageDataGeometryFilter> imageDataGeometryFilter =
vtkSmartPointer<vtkImageDataGeometryFilter>::New();

imageDataGeometryFilter->SetInputConnection(imageReader->GetOutputPort()); imageDataGeometryFilter->Update();

那么,如果第一个问题的答案是肯定的,那么这看起来是否走在了正确的轨道上?

最佳答案

我怀疑 VTK 是否提供了将通用 2d 形状处理为 3d 模型的现成算法。这基本上是一个逆向问题,意味着解决方案可能有很多;如果不对物体形状应用一些约束或假设,这将很困难。

VTK 可能会帮助您表达处理图像的步骤(例如提取显着特征,如角和线),并在数据结构上提供更多选择。您的代码中显示的想法在我看来仅显示了从 2d 到 3d 的一般处理管道,但细节(例如几何过滤器)可能需要您自己实现。

您想要完成的实际任务是一个算法问题,它是 CAD 领域的研究兴趣(定义明确的 2d 工程绘图到 3d 模型)例如这个 work .

关于c++ - vtk 将 2d 图像转换为 3d (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21714300/

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