在矩阵上保存不同的'graycoprops'属性值[MATLAB]

时间:2011-10-27 19:34:39

标签: matlab image-processing matrix glcm


我有一张照片。我创建了共生矩阵(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应该只保存数字,并忽略“同质性”

有人可以告诉我,我可以这样做吗?

1 个答案:

答案 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