matlab DCT变换function DCTclear;close all;a=imread('A1.jpg');subplot(121);imshow(a);title('原图');a=double(a);[M,N]=size(a);%获取图像大小b=0:(N-1);c=b;d=b'*c; %获取N乘N矩阵W=pi/(2*N);for x=1:Nfor y=2:Nd(x,y)=cos((2*(x-1)+1)*(y-1)*W);%
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 06:49:23
![matlab DCT变换function DCTclear;close all;a=imread('A1.jpg');subplot(121);imshow(a);title('原图');a=double(a);[M,N]=size(a);%获取图像大小b=0:(N-1);c=b;d=b'*c; %获取N乘N矩阵W=pi/(2*N);for x=1:Nfor y=2:Nd(x,y)=cos((2*(x-1)+1)*(y-1)*W);%](/uploads/image/z/14271840-0-0.jpg?t=matlab+DCT%E5%8F%98%E6%8D%A2function+DCTclear%3Bclose+all%3Ba%3Dimread%28%27A1.jpg%27%29%3Bsubplot%28121%29%3Bimshow%28a%29%3Btitle%28%27%E5%8E%9F%E5%9B%BE%27%29%3Ba%3Ddouble%28a%29%3B%5BM%2CN%5D%3Dsize%28a%29%3B%25%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F%E5%A4%A7%E5%B0%8Fb%3D0%3A%28N-1%29%3Bc%3Db%3Bd%3Db%27%2Ac%3B+%25%E8%8E%B7%E5%8F%96N%E4%B9%98N%E7%9F%A9%E9%98%B5W%3Dpi%2F%282%2AN%29%3Bfor+x%3D1%3ANfor+y%3D2%3ANd%28x%2Cy%29%3Dcos%28%282%2A%28x-1%29%2B1%29%2A%28y-1%29%2AW%29%3B%25)
matlab DCT变换function DCTclear;close all;a=imread('A1.jpg');subplot(121);imshow(a);title('原图');a=double(a);[M,N]=size(a);%获取图像大小b=0:(N-1);c=b;d=b'*c; %获取N乘N矩阵W=pi/(2*N);for x=1:Nfor y=2:Nd(x,y)=cos((2*(x-1)+1)*(y-1)*W);%
matlab DCT变换
function DCT
clear;
close all;
a=imread('A1.jpg');
subplot(121);
imshow(a);
title('原图');
a=double(a);
[M,N]=size(a);%获取图像大小
b=0:(N-1);
c=b;
d=b'*c; %获取N乘N矩阵
W=pi/(2*N);
for x=1:N
for y=2:N
d(x,y)=cos((2*(x-1)+1)*(y-1)*W);%当不出现有零的行或者列时的DCT变换核
end
end
for x=1:N;
d(x,1)=(1/sqrt(2))*cos((2*(x-1)+1)*(y-1)*W);%出现零列或者行时的DCT变换核
end
a1=a*d;%第一次变换
a2=(2/N)*d'*a1;%第二次变换
subplot(122);
imshow(a2);
title('DCT变换后图像');
22行错?
matlab DCT变换function DCTclear;close all;a=imread('A1.jpg');subplot(121);imshow(a);title('原图');a=double(a);[M,N]=size(a);%获取图像大小b=0:(N-1);c=b;d=b'*c; %获取N乘N矩阵W=pi/(2*N);for x=1:Nfor y=2:Nd(x,y)=cos((2*(x-1)+1)*(y-1)*W);%
你直接说哪行错误,指清楚点,matlab 中的22行和现在的22行不一样