使用 Matlab 创建普通图像

Creating a Normal Image With Matlab

使用 Matlab,我有 3 个矩阵,分别由 x、y 和 z 坐标组成。我们称它们为 A、B 和 C(A 有一个包含所有 x 元素的 768x1024 矩阵,B 包含所有 y 元素,C 包含所有 z 元素)。这些都是 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

您可以使用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));