Захаванне уласцівасцяў розных «graycoprops» значэння на матрыцы [MATLAB]


I've a picture. I create the co-occurrence matrix (graycomatrix) to extract different properties (contrast, correlation) etc on it (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

There are different types, so I can't save them on the X matrix.
The output matrix X, should save only the numbers, and ignore that "Homogenity"

Можа хто-небудзь сказаць мне, хто я магу гэта зрабіць?

1

1 адказы

З 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

Таксама зьвярніце ўвагу, што вы можаце ўключыць усе вашыя выявы ў якасці м х п х п матрыцы і апрацоўваць іх усё адразу, замест таго, каб выкарыстоўваць для цыклу. Напрыклад:

>> GLCM(:,:,2) = GLCM;
>> cell2mat(struct2cell(stats))

ans =

    2.8947    2.8947
    0.0783    0.0783
    0.1191    0.1191
    0.5658    0.5658
2
дададзена