2016-08-16 1 views
0

필자는 8 비트 이미지와 변환 행렬을 가지고 있습니다. griddata() 메서드 만 사용해야 변환 하시겠습니까? affine2d() 및 imwarp()를 사용하여 이러한 변환을 수행하는 방법을 알고 있지만 griddata()를 사용하여이 작업을 수행하는 방법은 무엇입니까?griddata()를 사용하여 MATLAB에서 이미지를 변환하는 방법은 무엇입니까?

+0

'griddata' 만 사용할 수있는 특별한 이유가 있습니까? –

+0

@ NoelSegura는 숙제 유형의 질문처럼 들립니다. Noname, 자세한 정보, 샘플 데이터 (작음), 샘플 변환 (단순), 예상 결과 등을 제공하십시오. [최소, 완전하며 검증 가능한 예제를 작성하는 방법] (http://stackoverflow.com/help/)을 읽으십시오. mcve)를 사용하여 질문에 답변하는 방법에 대해 자세히 알아보십시오. – Hoki

답변

0
  1. 이 (가) griddata
% Params 
row = 10; % number of rows in the matrix 
col = 10; % number of cols in the matrix 
ficitoiusValues = rand(col,row); 

% Create a mash grid for all the coordinate in the matrix 
[Y,X] = meshgrid(1:col,1:row); 
corrdaintes = [X(:),Y(:), ones(row*col,1)]; 

% Create a transform (In your case you already have this) 
transform = rand(3,3); 

% Warp all the corrdiantes 
transformedCorrdaines = transform*corrdaintes'; 

% Use griddata to find the new valiues of the new transformed corrdinates 
vq = griddata(1:col,1:row,ficitoiusValues,transformedCorrdaines(1,:),transformedCorrdaines(1,:)); 
을 사용하여 변형 된 좌표가
  • 샘플 원래 좌표에서 뒤틀린 좌표를 얻기 위해 변환 사용하여 변환하고자하는 모든 좌표를 가져옵니다
  • +0

    감사합니다. 사실, 저는 MATLAB을 처음 사용합니다. 이미지가 있습니다 (pentagon.tif). 나는 그것을 변형시켜야한다. 위 코드에서 이미지를 통합하려면 어떻게해야합니까? – Noname

    +0

    이미지를 읽고 이미지의 각 채널에 대해 ficitoiusValues를 채널로 대체하여 코드를 적용합니다. 행과 열의 값을 얻으려면 [행, 열] = 크기 (채널)을 사용하십시오. –

    +0

    대단히 감사합니다. – Noname

    관련 문제