2014-08-14 2 views
1

그레이 스케일로 표면의 2D 현미경 이미지를 가지고 있습니다. 이제 저는 이것을 3D로 그려서 이미지의 높이를 높이기로 바꾸고 싶습니다 (생각한 통합에 의해). GRDX의 2D 통합 시도 & grdy는 유용한 결과를 산출하지 못했습니다.Matlab : 그레이 스케일 그라데이션에서 3D 이미지를 얻는 방법

어떤 방법으로 제안 하시겠습니까? 나는 다른 플로팅 방법에 익숙하지 않고 imgradient를 사용할지, 어떻게 든 Gmag와 Gdir를 결합할지, imgradientxy를 사용하고 Gx와 Gy를 결합할지 (Gx, y 행렬에서 이미 여기에있는 크기입니까?)에 익숙하지 않습니다.

도움을 주시면 감사하겠습니다. 대단히 감사합니다.

+0

불분명. 후자의 경우,'imgradient'는 이미지의 그레이 스케일 값과 만 작동합니다. 그리고 이것이 정말로 높이와 관련이 있다면'imgradient '를 통해 전달 된 정보를 보지 못하고 다시 그들을 변환하려고합니다. . – nkjt

+0

나는이 이미지를 http://i.imgur.com/LnoL6wJ.png로 가지고 있으며, 그래디언트가 3D 이미지의 그라디언트를 참조해야하기 때문에 3dimensional로 만들고 싶다. (반구가있는 서페이스) – cos4

+0

조명이 있다고 가정한다. 여기서 "밝은"은 평면 (반구의 배경, 꼭대기)을 의미하고 "어두운"은 가파른 가장자리를 의미합니다. 이미 가지고있는 것은 어느 정도 그라디언트 이미지입니다. 문제는 올바른 방향을 얻는 방법으로 진행 중입니다. 내가 이미지의 한면에서 다른면으로 이동할 때 강한 그라디언트는 "높이 올리기"또는 "높이 올리기"를 의미합니까? 아마도 원 찾기 방법 (Hough etc)에서 시작하여 거기에서부터 시작하십시오. – nkjt

답변

1

이것은 무엇을 당신을 위해합니까?

a는 이미지의 경로입니다.

[b,c] = imgradient(a); 
surf(b); 

편집 : 당신은 그냥 꽤 뭔가 음모 또는 이미지에 실제 표면 높이를 얻으려면

a1 = imread('LnoL6wJ.png'); 
a = a1(:,:,3); 
[b,c] = imgradient(a); 
h = surf(b); 
set(h, 'edgecolor','none') 
+0

답장을 보내 주셔서 감사합니다. 그것은 내게 표면에 일치하지 않는 많은 검은 색 줄무늬를 제공합니다. http://i.imgur.com/rHOftkz.png 이것은 실제 이미지입니다. http://i.imgur.com/LnoL6wJ.png – cos4

+0

당신이 그것을 실행하고 각도를 약간 변경하면 내 편집을 한번보십시오. http://i.imgur.com/8mR6ZL7.png 아마 완벽하지는 않지만 오른쪽 라인? – Tom

+0

대단히 감사합니다! 예, 지금 얻은 결과와 비슷합니다. 그라디언트가 거의 영향을 미치지 않는 가장 좋은 결과라고 생각합니다. 반구형 표면의 실제 매핑은이 데이터로는 실제로 가능하지 않습니다. 내가 생각하는 다른 데이터를 얻으려고 노력할 것이다. – cos4

관련 문제