【问题标题】:Function to map an image to 3D point by point将图像逐点映射到 3D 的函数
【发布时间】:2013-05-20 04:11:05
【问题描述】:

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

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

感谢任何 cmets 或建议。谢谢。

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

附言

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

【问题讨论】:

  • 什么意思?你想用图像作为纹理吗?
  • 对不起,我不明白你所说的使用图像作为纹理是什么意思。 Shai 可能给了我想要的答案。我将尝试 scatter3() 函数。我一直在寻找与 Shai 所写内容类似的答案。

标签: image matlab image-processing graph


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2019-04-04
    相关资源
    最近更新 更多