2012-09-16 3 views
0

균일하고 이산 한 (x, y, z) 값에서 f (x, y, z)에 의해 정의 된 3D 데이터 세트가 주어지면, Matlab은 어떻게 함수 f (x, y, z) 이는 원본 데이터 세트 (예 : x + 0.1, y + 0.1, z + 0.1)가 아닙니다. 이 3D 데이터 세트는 특정 이산 x, y, z 값에서 픽셀 intesity 값을 갖는 3D 이미지 일 수 있습니다.Matlab에서 interp3에 사용되는 알고리즘은 무엇입니까?

+0

함수의 이름을 선택한 다음 Ctrl-D를 누릅니다. 이렇게하면 소스 코드가 생깁니다. 소스 코드는 저작권으로 보호되어 있으므로 비슷한 것을 구현하려는 경우 조심해야합니다. – 0xFE

답변

1

제공되는 'method'매개 변수에 따라 다르지만 기본적으로 (제공되지 않은 방법으로) linear 보간을 사용하며 가장 가까운 점을 찾고 동일한 값을 지정하는 'nearest'를 선택할 수도 있고 '스플라인'과 '큐빅'을 사용할 수 있습니다.

단조로운 데이터 (균등 분포 그리드)의 경우 '* linear'를 사용할 수 있습니다. 이는 아마도 trilinear 보간을 사용합니다.

편집 : 여기에 주석의 질문에 대한 대답은 삼자 선형 보간의 예입니다 f (x, y, z)는 x, y, z에 대해 정의되었으며 {0,1}에 속합니다. 0 < 용 = 난, J, 7 여기 선형 보간법이있다 < = 1

f(i,j,k) = ((f(0,0,0)*(1-i)+f(1,0,0)*i)*(1-j)+ 
      (f(0,1,0)*(1-i)+f(1,1,0)*i)* j )  * (1-k)+ 

      ((f(0,0,1)*(1-i)+f(1,0,1)*i)*(1-j)+ 
      (f(0,1,1)*(1-i)+f(1,1,1)*i)* j )  *  k 

통지 케이.

+0

3D 데이터 세트의 선형 보간은 무엇을 의미합니까? 당신이 큐브를 가지고 있고 각 정점이 원래 데이터 세트의 (x, y, z) 좌표로 정의된다면 큐브의 중심에서 어떻게 값을 구할 수 있을까요? – user1084113

+0

trilinear 보간 [여기] (http://en.wikipedia.org/wiki/Trilinear_interpolation) – pseudoDust

+0

에 대한 설명이 있지만 일반적으로 정육면체가 주어지면 네 쌍의 꼭지점에 대해 1 차원 보간법을 수행합니다. 이제 4 점이 있습니다. 새 데이터 포인트는 대상 점을 포함하는 단일 2D 평면에 있습니다. 이제 새 점의 쌍을 보간하여 대상 점을 포함하는 선에 2 개의 더 많은 데이터 점을 얻습니다. 여기에서 단 하나의 1D 보간이 추가됩니다. – pseudoDust

관련 문제