我有一组不同角度的场景图像和相机内部参数。我能够使用点对应和三角测量生成3D点。是否有内置方法或在MATLAB中生成3D图像的方法?从给定的图像集中,这样的3D图像? 3D图像是指基于颜色,深度等的场景3D视图?
答案 0 :(得分:3)
3D表面渲染最近有MathWorks blog post,它显示了使用内置函数和使用贡献代码的方法。
内置方法使用isosurface
和patch
。要显示多个曲面,诀窍是设置'FaceAlpha'
patch
property以获得透明度。
帖子还突出显示了"vol_3d v2" File Exchange submission,它提供了vol3d
函数来渲染表面。它允许明确定义体素颜色和alpha值。
答案 1 :(得分:1)
来自mathworks的一些文件交换: 3D CT/MRI images interactive sliding viewer,3D imshow,image3和viewer3D。
如果图片矩阵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如何创建三维图像,可以使用一对红绿立体眼镜查看。