我正在尝试编写有关图像压缩的代码。
I = imread('cameraman.bmp');
I = im2double(I);
T = dctmtx(8);
dct = @(block_struct) T * block_struct.data * T';
B = blockproc(I,[8 8],dct);
Run Code Online (Sandbox Code Playgroud)
每当我尝试执行上述行时,都会遇到错误
error: matrix cannot be indexed with .
error: called from
@<anonymous> at line 1 column 45
blockproc at line 135 column 6
Run Code Online (Sandbox Code Playgroud)
请帮我解决一下这个。谢谢。
@anonymous> 在第 1 行第 45 列
它写道“block_struct.data”的位置有错误。
发生错误是因为您的 block_struct 是一个矩阵(例如,[1 2; 3 4])并且它不是可调用对象(换句话说,“block_struct.”是禁止的)。
尝试删除“.data”。