在Matlab中将复数double转换为double类型

时间:2016-05-19 10:38:52

标签: matlab double glcm

我正在使用glcm方法进行特征提取。 glcm输出在' struct'类型,而我需要双类型的输出。

所以,我尝试使用下面显示的几个代码来转换它。

获取Fetest1代码:

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代码:

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');

整个过程的输出是fetrain1和fetest1变量。我运行相同的代码来获取fetest1和fetrain1,但是fetest1是双倍的'类型,而胎儿是复杂的双重'类型。

enter image description here

enter image description here

我需要将“胎儿1”从“复杂的双重身份”转换为输入' double'类型,所以我可以使用该变量进行下一步。使用神经网络方法训练步骤。

任何建议都将非常感激。

1 个答案:

答案 0 :(得分:0)

如果您正在通过GLCM方法提取功能,您可以这样做:

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