Display 2-D grayscale image with vector normal arrows

I have a 2-D grayscale image of a macroscopically flat surface. On a much smaller scale, the surface has regular variations in its surface normal. Is there a way to display the 2-D grayscale image in a 3-d plot while having quiver3 (or something similar) display the local surface normals?
Any help is appreciated!
ken.

 採用された回答

Sean de Wolski
Sean de Wolski 2011 年 8 月 23 日

0 投票

Yes. Use, slice to plot your image and then overlay the quiver3 on it. Quick example:
I = double(repmat(imread('cameraman.tif'),[1 1 2]));
%slice requires double precision at least two in each dimension
H = slice(I,[],[],1);
colormap(gray(256)); %8bit color scheme
set(H,'EdgeColor','none') %required so image isn't just an edge
hold on %hold it
quiver3(rand(10,1)*256,rand(10,1)*256,ones(10,1),rand(10,1)*15,rand(10,1)*15,rand(10,1)*7);
%Quiverize it

1 件のコメント

Ken
Ken 2011 年 8 月 23 日
Works great! Thanks a bunch!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Vector Fields についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by