当前位置:编程学习 > Matlab >>

下面matlab程序是书上的,但是我运行就是会出错求解释求更正

I = imread('ceshi.jpg'); % 读取图片 I = im2double(I) ;%图片存储类型转换 T = dctmtx(8);%离散余弦变换矩阵 B = blkproc(I,[8 8],'P1*x*P2',T,T'); %对源图像进行DCT变换 mask = [1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 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]; B2 = blkproc(B,[8 8],'P1.*x',mask);%数据压缩,丢弃右下角高频数据 I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);%进行反DCT变换 subplot(1, 2, 1); imshow(I, []); subplot(1, 2, 2); imshow(I2, []);
答案:你的文件ceshi.jpg不是书上的文件,你自己随便用一个彩图的话,读出来的数据可能是3维的,blkproc这个函数是处理2维数据,所以会报错,你在第一句后面加上这一句 I=rgb2gray(I);就能运行了 ,就是把彩图变成灰度图
其他:是否缺少ceshi.jpg这个文件

上一个:利用matlab将一张图片分割成10×10的小图片,求程序!
下一个:关于matlab 的,为什么这个程序运行出来只有三条曲线,应该要四条啊,求高手帮忙啊

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,