作者david2994 (北极)
看板MATLAB
标题[绘图] 反DCT无法正确显示
时间Sat Apr 29 23:11:00 2017
小弟是初学者
遇到问题上网爬文许久没有找到解决方法
所以才来发文
首先这是程式码
clear;
clc;
X=imread('123.bmp');
X80=imread('dct.bmp');
X=double(X);
[a,b]=size(X);
X80=double(X80);
[a1,b1]=size(X80);
subplot(1,3,1);
imshow(uint8(X80));
title('以储存之DCT');
Y1=dct2(X);
imwrite(uint8(Y1),'dct.bmp');
subplot(1,3,2);
imshow(uint8(Y1));
title('DCT转换');
X20=idct2(X80);
subplot(1,3,3);
imshow(uint8(X20));
title('DCT恢复');
我遇到的问题是在程式中将一张图片进行dct2()後显示,再使用idct2()显示图片能够正
常还原。
但是如果将dct2()转换的图片以uint8储存,再将已储存的图片进行idct2(),则图片无法
正常还原。
我先让程式执行一次储存了经DCT转换後的图档。
之後执行第二次比较两者是否相同发现无法还原。
http://i.imgur.com/G8VgXqO.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.170.147.113
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1493478663.A.B49.html