MATLAB简单问题求救
clear all;close all;clcI1=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]