飞猪阿尔图 发表于 2020-5-12 22:55:12

MATLAB简单问题求救

clear all;close all;clc
I1=imread('C:\Users\10739\Desktop\DSC09140.jpg');%打开图像
I1=rgb2gray(I1); %将RGB图像转换为灰度图像
figure(1);imshow(I1);title('原始图像');
I=im2double(I1); %归一化----
imwrite(I,'原始图像2.JPG');
I2=zeros(240,135);I3=I2;
T=dctmtx(8);


quantization_table=[16 11 10 16 24 40 51 61 ;
    12 12 14 19 26 58 60 55 ;
    14 13 16 24 40 57 69 56 ;
    14 17 22 29 51 87 80 62 ;
    18 22 37 56 68 109 103 77;
    24 35 55 64 81 104 113 92;
    49 64 78 87 103 121 120 101;
    72 92 95 98 112 100 103 99];
%分块做DCT变换(8×8)
for i=1:8:1920
    for j=1:8:1080
       P=I(i:i+7,j:j+7);
      K=T*P*T';
      I2(i:i+7,j:j+7)=K;
      K=K./quantization_table;%量化
      K(abs(K)<0.03)=0;
      I3(i:i+7,j:j+7)=K;
    end
end
figure;imshow(I2);title('DCT变换后的频域图像');%显示DCT变换后的频域图像


%分块做DCT反变换(8×8)
for i=1:8:1920
    for j=1:8:1080
      P=I3(i:i+7,j:j+7).*quantization_table;%反量化
      K=T'*P*T;
      I4(i:i+7,j:j+7)=K;
    end
end
I4=uint8(I4);
figure;imshow(I4);title('复原图像');
imwrite(I4,'复原图像6.jpg');
sigma(I4);figure;imshow(I4);


报错:
索引超出矩阵维度。

出错 TEST4 (line 22)
      P=I(i:i+7,j:j+7);
页: [1]
查看完整版本: MATLAB简单问题求救