1

画像をポイントごとに 3 次元空間にマッピングしようとしています。

たとえば、元の画像の場所で強度が 100 の場合、Xこの点を強度 100 で 3D 位置にプロットしたいとY思います。すべての点/ピクセルに対してこの手順を繰り返し、最終的な画像を取得します。私の最大の問題は、ポイントごとにやりたいということです。

コメントやアドバイスをいただければ幸いです。ありがとうございました。

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

ps

この質問を書いていて、ふと思いつきました。関数を使用して、「全体」の画像を 3D の特定の場所/形状に印刷する方法を知っていwarp()ます。ワープ関数の引数として画像全体を使用する代わりに、ワープ関数の引数として 1 つのポイント強度値と 1 つの 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 に答える