1

我正在尝试将我的图像逐点映射到 3 维空间。

例如,如果我的原始图像在位置的强度为 100 X,我想在 3D 位置Y以强度为 100 绘制这个点。我想对每个点/像素重复此步骤,并获得最终图像。我最大的问题是我想逐点做。

我感谢任何意见或建议。谢谢你。

========================

ps

在我写这个问题的时候,我只是想出了一个主意。我知道如何使用warp()函数将“整个”图像打印到 3D 中的某个位置/形状。如果我给一个点强度值和一个 3D 点作为扭曲函数的参数,而不是使用我的整个图像作为扭曲函数的参数,并为每个图像点重复此步骤,我会得到一个下降的 3D 最终图像吗?如果有更好的功能可以使用,请告诉我。

4

1 回答 1

1

听起来你正在寻找scatter3

I = imread('cameraman.tif');
[x y]=meshgrid(1:size(I,1), 1:size(I,2));
scatter3(x(:),y(:),I(:),15,I(:),'filled');
axis tight; colormap gray

这就是你得到的(在对观点进行一些更改之后):

在此处输入图像描述

PS,
我使用一个scatter3命令一次绘制所有点。你可以(我不知道你为什么要这样做)一个一个地做

 figure;
 for ii=1:numel(x)
     scatter( x(ii), y(ii), I(ii), 15, I(ii), 'filled'); 
     hold on; % need this!
 end
 axis tight; colormap gray;
于 2013-05-20T05:05:06.877 回答