2016-05-19 21 views
0

Ich mache eine Feature-Extraktion mit Glcm-Methode. Die Ausgabe von glcm hat den Typ 'struct', während ich die Ausgabe in doppelter Ausführung benötige.Konvertieren von komplexen Doppel zu Doppel-Typ in Matlab

Also, ich habe versucht, es mit mehreren unten gezeigten Code zu konvertieren.

Um Fetest1 Code zu erhalten:

srcFile = dir('D: datatest\*.png'); 
fetest1 = []; %or fetrain1 
for b = 1:length(srcFile) 
    file_name = strcat('D:datatest\',srcFile(b).name); 
    B = imread(file_name); 
% [fiturtest] = feature_extractor (B); 
    [g] = glcm (B); 
    [g] = struct2cell (g); 
    [fiturtest] = cell2mat (g); %fiturtrain 
% [c] = CobaDCT (A); 
% [fitur] = cobazigzag(c); 
% arr(:,a) = fitur; 
    fetest1 = [fetest1 fiturtest]; %fiturtrain 
% vectorname = strcat(file_name,'_array.mat'); 

end 
save ('fetest1.mat','fetest1'); %fetrain1 

Fetrain1 Code zu erhalten:

srcFiles = dir('D:datatrain\*.png'); 
fetrain1 = []; 
for a = 1:length(srcFiles) 
    file_name = strcat('D:datatrain\',srcFiles(a).name); 
    A = imread(file_name); 
    [fiturtrain] = feature_extractor (A); 
% [c] = CobaDCT (A); 
% [fitur] = cobazigzag(c); 
%  fiturtrain (:,a) = fiturtrain ; 
    fetrain1 = [fetrain1 fiturtrain]; 
% vectorname = strcat(file_name,'_array.mat'); 
end 
save ('fetrain1.mat','fetrain1'); 

Der Ausgang des gesamten Prozesses fetrain1 und fetest1 Variablen ist. Ich führe den gleichen Code aus, um fetest1 und fetrain1 zu erhalten, aber fetest1 ist vom Typ "double", während fetrain vom Typ "complex double" ist.

enter image description here

und

enter image description here

brauche ich fetrain1 von 'komplexen Doppel' Typ in 'double' Typ zu konvertieren, so kann ich die Variable für den nächsten Schritt verwendet werden. Trainingsschritt mit Neural Network-Methode.

Jeder Vorschlag wäre sehr willkommen.

+1

Der Absolutwert einer komplexen Zahl wird von 'abs' zurückgegeben. Der Realteil und der Imaginärteil werden von "real" bzw. "imag" zurückgegeben. Die eigentliche Frage ist: Was würdest du wählen und warum? – buzjwa

+0

Ich brauche deine Hilfe für die arabische Zeichensegmentierung, kann ich deine E-Mail haben? – Hamed

+0

mit Vergnügen @ Hamed. [email protected] –

Antwort

0

Wenn Sie Funktionen durch die GLCM Methode estracting können Sie tun:

srcFile = dir('D: datatest\*.png'); 
fetest1 = []; %or fetrain1 

for b = 1:length(srcFile) 
    file_name = strcat('D:datatest\',srcFile(b).name); 
    B = imread(file_name); 

    imG = rgb2gray(B); 

    % create gray-level co-occurrence matrix from image 
    gimg = graycomatrix(imG); 

    % extract properties of gray-level co-occurrence matrix 
    stats = graycoprops(gimg, 'all'); 

    features = [stats.Energy stats.Homogeneity stats.Correlation stats.Contrast]; 

    fetest1 = cat(1, fetest1, features); 
end 
+0

danke für den Vorschlag. Aber ich habe bereits GLCM-Funktion, der ursprüngliche Quellcode ist von hier http://www.mathworks.com/matlabcentral/fileexchange/22187-glcm-texture-features Was ich jetzt brauche, ist das passende zu bekommen Ausgabe. fetrain1 im 'doppelten' Typ. Also kann ich es im nächsten Schritt verwenden. –

+0

Es gibt keinen 'fetrain' in deinem Code. – SamuelNLP

Verwandte Themen