2014-11-04 2 views
0

wrl 파일을 사용하여 3D 표면을 표현했습니다. 필요한 정보를 읽었습니다. 정점,면, 법선, 텍스처 좌표 등의 데이터를 가질 수 있습니다.3D 표면 데이터를 2D 범위 이미지로 변환

이 데이터를 사용하여이 값을 2D 범위 이미지로 변환하는 방법 (일반 강도 이미지와 동일하지만 각 픽셀이 기본 표면의 깊이 값을 전달한다는 점을 제외하고는)? 나는 일반적인 아이디어가 환영 받기는하지만, 문제에 대한 Matlab 선호 솔루션을 선호한다. 사용 griddata

답변

0

내가 제대로 이해하면 X, Y, Z 데이터가 있고 이미지 강도가 나는 일을해야한다고 생각 Z.

[ximg,yimg]=meshgrid(1:szX,1:szY); 
img = griddata(x,y,z,ximg,yimg); 
% normalize image, or set it at range you want 

인 이미지로 변환 할 .

+0

답장을 보내 주셔서 감사합니다. Ander. 나는 그것을 처음 시도했다. (미안하다. 나는 그 말을 잊어 버렸다.) 그러나 격자 데이터의 중요한 제약 조건은 격자 점 (meshgrid의 격자 점)이 우리가 보간하는 3D 표면의 일부 여야한다는 것입니다. 필자의 경우, 가지고있는 3D 데이터는 다른 곳에 집중되어 있습니다 (대부분의 x-y 점은 음수입니다). 이 작업을 수행하기 위해 나는 meshgrid에서 얻은 그리드의 대략 중심으로 (단순히 번역하여) 가지고있는 3D 점 구름을 다시 주목하려고합니다. 이거 어떻게 생각해 ? – Swami

+0

@Swami Definetly. 모든 X-Y 데이터의 중심을 szX/2 szY/2에 맞 춥니 다. 그런 다음 2 : 정점이 모두 1 : szX 1 : szY (포함)가되도록 데이터의 크기를 조정하십시오. 그것은 내가 생각하기에는 너무 어둡다.) –