0

我正在使用 glcm 方法进行特征提取。glcm 输出是“结构”类型,而我需要双精度类型的输出。

因此,我尝试使用下面显示的几个代码对其进行转换。

获取 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 是“双”类型,而 fetrain 是“复双”类型。

在此处输入图像描述

在此处输入图像描述

我需要将 fetrain1 从 'complex double' 类型转换为 'double' 类型,以便下一步使用该变量。使用神经网络方法的训练步骤。

任何建议将不胜感激。

4

1 回答 1

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
于 2016-05-19T11:04:44.450 回答