用Matlab创建普通图像

时间:2016-01-08 22:42:08

标签: matlab normals

使用Matlab,我有3个矩阵,分别包含x,y和z坐标。我们将它们称为A,B和C(A具有所有x元素的768x1024矩阵,所有y元素的B和所有z元素的C)。这些都是768 x 1024图像。它们本质上是每个像素处的法向量的元素。

A = 768x1024
B = 768x1024
C = 768x1024

Result I want = a 768x1024 matrix that has a color map intensity to show the direction of the normal vector at each pixel.

所以我想创建一个768x1024的法线贴图图像,它使用x,y,z坐标显示每个像素的法线贴图。我想知道你将如何在Matlab中做到这一点。有点类似于:https://www.google.com/search?q=normal+map+image&espv=2&biw=1266&bih=641&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjXybLQpJvKAhXKOiYKHVP-DoIQ_AUIBigB#imgrc=mxx6Z4GDfTcczM%3A

1 个答案:

答案 0 :(得分:0)

您可以使用surfnorm

[nx,ny,nz] = surfnorm(A,B,C);
img = reshape([nx ny nz], size(nx,1), size(nx,2),3); //range [-1,1]
img = ((img+1)./2).*255; //range [0,255]
imshow(uint8(img));