MATLAB을 사용한 2D 보간
이 튜토리얼에서는 MATLAB에서 interp2()
함수를 사용하여 2D 데이터의 보간을 찾는 방법에 대해 설명합니다.
MATLAB의 interp2()
함수를 사용하여 2D 데이터의 보간 찾기
MATLAB의 내장 함수 interp2()
함수를 사용하여 메쉬 그리드 형식에서 2D 그리드 데이터의 보간을 찾을 수 있습니다. 예를 들어 기본 방법을 사용하여 그리드를 보간해 보겠습니다.
아래 코드를 참조하십시오.
clc
[x,y] = meshgrid(-3:3);
v = peaks(x,y);
figure
surf(x,y,v)
title('Original Sampling');
[xq,yq] = meshgrid(-3:0.25:3);
vq = interp2(x,y,v,xq,yq);
figure
surf(xq,yq,vq);
title('Linear Interpolation Using Finer Grid');
출력:
출력에서 오른쪽 이미지는 기본 방법을 사용한 보간 결과입니다.
보시다시피 출력 이미지에는 원본 이미지에 비해 더 많은 데이터 포인트가 있습니다. x 및 y 벡터는 입력 행렬이며 크기가 같아야 합니다.
v 벡터는 샘플 값을 포함합니다. v에 복소수가 포함된 경우 실수 또는 복소수 값을 포함할 수 있습니다.
그런 다음 interp2()
함수는 실수부와 허수부를 별도로 보간합니다. 벡터 xq
및 yq
에는 실수 스칼라, 벡터, 행렬 또는 배열이 될 수 있는 쿼리 포인트가 포함됩니다.
보간을 위한 3차, 최근접 또는 스플라인 방법을 설정할 수 있는 것처럼 interp2()
함수에서 새 방법을 문자열로 정의하여 보간 방법을 변경할 수도 있습니다. 보간을 사용하여 회색조 이미지를 다듬을 수 있습니다.
이미지의 픽셀 수가 적으면 이미지 내부의 세부 정보가 표시되지 않습니다. 이 경우 보간을 사용하여 이미지를 이해하는 데 필요한 픽셀 수를 늘릴 수 있습니다.
예를 들어 회색조 이미지를 MATLAB에 로드하고 interp2()
함수를 사용하여 수정해 보겠습니다. 아래 코드를 참조하십시오.
clc
clear
load flujet.mat
colormap gray
v = single(X(200:300,1:25));
figure
imagesc(v);
axis off
title('Original Image')
vq = interp2(v,5);
figure
imagesc(vq);
axis off
title('Linear Interpolation')
출력:
출력에서 오른쪽 이미지는 선형 보간을 사용하여 미세 조정됩니다. single()
함수는 값을 단정밀도로 변환하는 데 사용됩니다.