2016-08-16 3 views
0

Ich habe ein 8-Bit-Bild und eine Transformationsmatrix. Ich muss die Methode griddata() verwenden ONLY, um es zu transformieren? Ich weiß, wie man solche Übersetzung mit affine2d() und imwarp() tut, aber, wie diese Aufgabe mit Hilfe von Griddata() zu tun?Wie wird das Bild mithilfe von griddata() in MATLAB transformiert?

+0

Gibt es einen bestimmten Grund, warum Sie nur 'Griddata' verwenden können? –

+0

@NoelSegura, klingt wie eine Hausaufgabe Art der Frage. Noname, bitte geben Sie weitere Informationen, Beispieldaten (klein), Beispieltransformation (einfach), erwartetes Ergebnis usw. an ... lesen Sie [So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/) mcve) für Details darüber, wie man eine Frage mit besserer Antwortchance stellt. – Hoki

Antwort

0
  1. Holen Sie sich alle Koordinaten, die Sie
  2. transformieren möchten Verwenden Sie die die verzerrten Koordinaten
  3. Beispiel die verzogenen Koordinaten von den ursprünglichen Koordinaten erhalten Transformation unter Verwendung von 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

Danke. Eigentlich bin ich neu bei MATLAB. Ich habe ein Bild (Pentagon.tif). Ich muss es transformieren. Wie integriere ich das Bild in den obigen Code? – Noname

+0

Lesen Sie das Bild und für jeden Kanal des Bildes wenden Sie den Code an, indem Sie die ficitoiusValues ​​durch den Kanal ersetzen. Um die Zeilen- und Spaltenwerte zu erhalten, verwenden Sie einfach [Zeile, Spalte] = Größe (Kanal) –

+0

Vielen Dank. – Noname

Verwandte Themen