我有一张照片。我创建了共生矩阵(graycomatrix
)来提取不同的属性(对比度,相关性)等(graycoprops
)
x = []
for a lot of pictures, do the same:
imgB = imread('currentLoopImage.jpg')
contrast = graycoprops(graycomatrix(rgb2gray(imgB)), 'Contrast')
correlation = graycoprops(graycomatrix(rgb2gray(imgB)), 'Correlation')
energy = graycoprops(graycomatrix(rgb2gray(imgB)), 'Energy')
homogeneity = graycoprops(graycomatrix(rgb2gray(imgB)), 'Homogeneity')
x = [x;contrast;correlation;energy;homogeneity]
问题是我需要保存该矩阵X上的所有值,但是我收到以下错误:
CAT参数在结构字段名称中不一致。
因为这是我从每种类型获得的输出:
homogeneity =
Homogeneity: 0.8587
有不同的类型,所以我无法将它们保存在X矩阵上 输出矩阵X应该只保存数字,并忽略“同质性”
有人可以告诉我,我可以这样做吗?
答案 0 :(得分:2)
来自graycoprops()
示例:
>> GLCM = [0 1 2 3;1 1 2 3;1 0 2 0;0 0 0 3];
>> stats = graycoprops(GLCM)
stats =
Contrast: 2.8947
Correlation: 0.0783
Energy: 0.1191
Homogeneity: 0.5658
然后就这样做:
>> x = struct2array(stats)
ans =
2.8947 0.0783 0.1191 0.5658
另请注意,您可以将所有图像包含在m x n x p矩阵中,并一次处理所有图像,而不是使用for循环。例如:
>> GLCM(:,:,2) = GLCM;
>> cell2mat(struct2cell(stats))
ans =
2.8947 2.8947
0.0783 0.0783
0.1191 0.1191
0.5658 0.5658