使用不同图像在MATLAB中的3D图像

时间:2013-12-03 01:36:26

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

来自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

答案 2 :(得分:1)

用于MATLAB的计算机视觉系统工具箱包含一个名为estimateUncalibratedRectification的功能,您可以使用该功能来纠正一对立体图像。查看example如何创建三维图像,可以使用一对红绿立体眼镜查看。