2017-10-08 4 views
0

J'essaye d'écrire un code sur la compression d'image.Matrix ne peut pas être indexé avec

I = imread('cameraman.bmp'); 
I = im2double(I); 
T = dctmtx(8); 
dct = @(block_struct) T * block_struct.data * T'; 
B = blockproc(I,[8 8],dct); 

chaque fois que je tente d'exécuter la ligne ci-dessus, je rencontre avec une erreur

error: matrix cannot be indexed with . 
error: called from 
    @<anonymous> at line 1 column 45 
    blockproc at line 135 column 6 

s'il vous plaît me aider. merci.

Répondre

0

@anonymous> à la ligne 1 colonne 45

Il a écrit que l'erreur dans la position de "block_struct.data". L'erreur se produit parce que votre block_struct est une matrice (par exemple, [1 2; 3 4]) et il n'est pas appelable object (en d'autres termes, "block_struct." Est interdit).

Essayez de supprimer ".data".