张107 2023-09-02 20:47 采纳率: 0%
浏览 4

DCT压缩图片代码错误

close all
clc
clear
A=imread('tupian.jpg');%读取图像x.jpg
I=rgb2gray(A);%RGB图像转灰度图像
I=im2double(I);
T=dctmtx(8);%得到一个8*8的离散余弦变化矩阵
m=[1 1 0 0 0 0 0 0
   1 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0
   0 0 0 0 0 0 0 0];%保留左上角3个系数
fun = @(blk_struct) T*blk_struct.data*T.*m';
B=blockproc(I,[8 8],fun);
fun2 = @(block_struct) T'*block_struct.data*T;
I2=blockproc(B0,[8 8],fun2);%进行反余弦变换,得到压缩后的图象
figure;
subplot(1,2,1)
imshow(I),title('原始图像','Fontsize',18);
subplot(1,2,2);
imshow(I2),title('压缩还原图像(3个系数)','Fontsize',18);

这串代码应该怎么改?显示我的矩阵乘法的维度不正确

  • 写回答

2条回答 默认 最新

  • 张107 2023-09-02 20:56
    关注

    19行的B0应该是B,写错了

    评论

报告相同问题?

问题事件

  • 创建了问题 9月2日