警告:IMSHOW(I,N) 是一种过时的语法。您的灰度图像将使用 256 级灰色显示
Warning: IMSHOW(I,N) is an obsolete syntax. Your grayscale image will be displayed using 256 shades of gray
我明白了 warning:Warning:IMSHOW(I,N) 是一种过时的语法。您的灰度图像将使用 256 级灰色显示..请帮助我。我已经实现了 2d dct.why 它不适用于 m=64;
m=input('enter the basis matrix dimension:');
n=m;
alpha2=ones(1,n)*sqrt(2/n);
alpha2(1)=sqrt(1/n);
alpha1=ones(1,m)*sqrt(2/m);
alpha1(1)=sqrt(1/m);
for u=0:m-1
for v=0:n-1
for x=0:m-1
for y=0:n-1
a(u+1,v+1,x+1,y+1)=alpha1(u+1)*alpha2(v+1)*cos((2*x+1)*u*pi/(2*n))*cos((2*y+1)*v*pi/(2*n));
end
end
end
end
mag=a;
figure;
k=1;
%code to plot basis
for i=1;m
for j=1:n
subplot(m,n,k)
imshow(mag(i,j),256);
k=k+1;
end
end
你不能那样做子索引,试试:
a(u+1,v+1, x+1,y+1)=alpha1(u+1)*alpha2(v+1)*cos((2*x+1)*u*pi/(2*n))*cos((2*y+1)*v*pi/(2*n))
编辑:
您遇到了 3 个问题。您仍在尝试将数据提取出来,就好像它是子矩阵一样,然后修复尺寸不正确以及您评论的错误。
这是为了解决所有问题。
imshow(squeeze(mag(i,j,:,:)),[0, 255]);
我明白了 warning:Warning:IMSHOW(I,N) 是一种过时的语法。您的灰度图像将使用 256 级灰色显示..请帮助我。我已经实现了 2d dct.why 它不适用于 m=64;
m=input('enter the basis matrix dimension:');
n=m;
alpha2=ones(1,n)*sqrt(2/n);
alpha2(1)=sqrt(1/n);
alpha1=ones(1,m)*sqrt(2/m);
alpha1(1)=sqrt(1/m);
for u=0:m-1
for v=0:n-1
for x=0:m-1
for y=0:n-1
a(u+1,v+1,x+1,y+1)=alpha1(u+1)*alpha2(v+1)*cos((2*x+1)*u*pi/(2*n))*cos((2*y+1)*v*pi/(2*n));
end
end
end
end
mag=a;
figure;
k=1;
%code to plot basis
for i=1;m
for j=1:n
subplot(m,n,k)
imshow(mag(i,j),256);
k=k+1;
end
end
你不能那样做子索引,试试:
a(u+1,v+1, x+1,y+1)=alpha1(u+1)*alpha2(v+1)*cos((2*x+1)*u*pi/(2*n))*cos((2*y+1)*v*pi/(2*n))
编辑:
您遇到了 3 个问题。您仍在尝试将数据提取出来,就好像它是子矩阵一样,然后修复尺寸不正确以及您评论的错误。
这是为了解决所有问题。
imshow(squeeze(mag(i,j,:,:)),[0, 255]);