기본적으로 이를 2D 다변량 보간이라고 합니다. 위치(x,y)와 해당 데이터 세트가 있습니다(예: z=색상 값). 일부 (x,y)의 경우 z 열에 데이터가 누락되었습니다. (x3,y3, z3=?)의 값을 보간하기 위해 가장 가까운 알려진 두 개(x1,y1,z1) 및 (x2,y2,z2)를 사용하고 싶습니다.
이론적으로는 이 위키/Bilinear_interpolation 내가 얻고 싶은 것입니다.
JMP에 이를 수행할 수 있는 방법이 있나요?
또한 먼저 X, Y 데이터를 두 개의 다른 열 A, B로 그룹화해야 합니다.예. CO1 A,B는 파일 이름과 프레임 번호를 나타냅니다. X,Y는 프레임의 픽셀 위치이고 Z는 픽셀 색상입니다.
각 파일의 각 프레임에서 누락된 픽셀에 대한 Z 값을 보간하고 싶습니다.
샘플 데이터 세트
| 파일 | 액자 | 엑스 | 와이 | 색상 |
| 앤트맨 | 1 | 0 | 0 | 255 |
| 앤트맨 | 1 | 5 | 5 | 195 |
| 앤트맨 | 1 | 삼 | 2 | ?? |
| 앤트맨 | 2 | 0 | 0 | 255 |
| 배트맨 | 삼 | 0 | 0 | 255 |
| 배트맨 | 삼 | 삼 | 2 | ?? |
| 배트맨 | 삼 | 5 | 5 | 100 |
내가 올바르게 이해했다면 이중선형 보간에는 4개의 포인트(2개가 아닌)가 필요합니다. 그룹화 열은 쉽게 처리되므로 한 그룹에 대해 다음과 같은 작업을 수행할 수 있습니다.
Names Default To Here( 1 );
// Example table: Four complete observations, and one missing 'Colour' to be
// obtained by bilinear interpolation
dt = New Table( "Antman_1",
Add Rows( 5 ),
New Column( "X",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 5, 3, 5, 0] )
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [0, 5, 2, 0, 5] ),
Set Display Width( 92 )
),
New Column( "Colour",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [255, 195, ., 100, 150] )
)
);
// Using the notation at: https://en.wikipedia.org/wiki/Bilinear_interpolation
x1 = dt[1, "X"];
x2 = dt[2, "X"];
y1 = dt[1, "Y"];
y2 = dt[2, "Y"];
q11 = dt[1, "Colour"];
q21 = dt[4, "Colour"];
q12 = dt[5, "Colour"];
q22 = dt[2, "Colour"];
x = dt[3, "X"];
y = dt[3, "Y"];
// Interpolate in the X direction
r1 = Interpolate(x, x1, q11, x2, q21);
r2 = Interpolate(x, x1, q12, x2, q22);
// Interpolate in the Y direction
p = Interpolate(y, y1, r1, y2, r2);
Wait(3);
dt[3, "Colour"] = p;
이것이 '최선의' 방법은 아니지만 더 나은 방법을 사용하려면 JMP 테이블의 일부 샘플 데이터가 필요합니다. 또한 극단적인 경우를 처리하는 방법도 결정해야 합니다.