【问题标题】:3D image in MATLAB using different imagesMATLAB 中使用不同图像的 3D 图像
【发布时间】:2013-12-03 01:36:25
【问题描述】:

我有一组不同角度的场景图像和相机内在参数。我能够使用点对应和三角测量来生成 3D 点。是否有内置方法或方法可以在 MATLAB 中生成 3D 图像?从给定的图像集中,3D 图像本身?我所说的 3D 图像是指基于颜色、深度等的场景的 3D 视图?

【问题讨论】:

  • 那么你已经有了深度图,只需要显示图像+深度?
  • @Lakshmi Narayanan 你检查了吗? stackoverflow.com/questions/6891154/…
  • @portforwardpodcast 我获得了 3d 点并显示了它们,但由于匹配的内点和异常点的数量,它们并没有很接近。如果您将 3d 点作为深度,是的,我有。但我想要一种 3D 效果,我认为在下面的答案中对此进行了解释

标签: image-processing computer-vision matlab matlab-cvst


【解决方案1】:

最近有一个关于 3D 表面渲染的MathWorks blog post,它展示了使用内置函数和使用贡献代码的方法。

内置方法使用isosurfacepatch。要显示多个表面,诀窍是设置'FaceAlpha' patch property 以获得透明度。

该帖子还突出显示了"vol_3d v2" File Exchange submission,它提供了vol3d 函数来渲染表面。它允许显式定义体素颜色和 alpha 值。

【讨论】:

    【解决方案2】:

    来自 mathworks 的一些文件交换: 3D CT/MRI images interactive sliding viewer3D imshowimage3viewer3D

    如果你的图片矩阵I的维度是x*y*z,你也可以试试surface

    [X,Y] = meshgrid(1:size(I,2), 1:size(I,1));
    Z = ones(size(I,1),size(I,2));
    for z=1:size(I,3)
       k=z*sliceInterval;
       surface('XData',X, 'YData',Y, 'ZData',Z*k,'CData',I(:,:,z), 'CDataMapping','direct', 'EdgeColor','none', 'FaceColor','texturemap')
    end
    

    【讨论】:

      【解决方案3】:

      用于 MATLAB 的计算机视觉系统工具箱包含一个名为 estimateUncalibratedRectification 的函数,您可以使用它来校正一对立体图像。查看此example,了解如何创建 3-D 图像,可以用一副红蓝立体眼镜观看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2021-06-05
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-13
        相关资源
        最近更新 更多