作业帮 > 数学 > 作业

matlab图像处理的错误怎么更改?

来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/06 08:35:45
matlab图像处理的错误怎么更改?
>> I=imread('D:\Buliding.tif');
I=im2double(I); %转换图像矩阵为双精度型.
J=dct2(I);
T=dctmtx(8); %产生二维DCT变换矩阵
a1=[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 ];
for i=1:8:200
for j=1:8:200
P=I(i:i+7,j:j+7);
K=T*P*T';
I2(i:i+7,j:j+7)=K;
K=K./a1; %量化
K(abs(K)
matlab图像处理的错误怎么更改?
dct2只能计算二维矩阵的二维dct变换
而I=imread('D:\Buliding.tif');
读取的I是rgb三维矩阵
I=im2double(I);之后I还是三维矩阵
如果要处理rgb图像,那么只能分开三个颜色来处理
如果只是处理灰度图像的画,你应该将元图像先化为灰度图像再处理
I=imread('D:\Buliding.tif');
I=rgb2gray(I);
再问: 如果这样解压时出来的为灰色图像,还得再次把灰色图像转变为彩色图像就可以了吧
再问: 如果这样解压时出来的为灰色图像,还得再次把灰色图像转变为彩色图像就可以了吧
再答: 如果是彩色图,有r g b三个分量

可以对g r b三个分量分别进行压缩
I=imread('D:\Buliding.tif');读到的I是 mxnx3的矩阵

你可以用
r=I(:,:,1);g=I(:,:,2);b=I(:,:,3);
分别提取三种颜色,分别进行压缩

解压时分别对三个分量的图解压,重新得到的rgb图就能恢复彩色图像

还可以把rgb图像转为hsv图像再压缩
hsv图像有 h s v三个分量,因为需要分别压缩

如果用了I=rgb2gray(I);那么rgb图就变成灰度图,颜色信息丢失

就很难再恢复为彩色了
再问: 我没学过图像处理最多我也就能大体看懂灰色的,彩色的你给我说的我也不太会,你有时间可不可以帮我写下,谢谢了