我正在使用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是双倍的'类型,而胎儿是复杂的双重'类型。
和
我需要将“胎儿1”从“复杂的双重身份”转换为输入' double'类型,所以我可以使用该变量进行下一步。使用神经网络方法训练步骤。
任何建议都将非常感激。
答案 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