我正在使用matlab 2015.我知道通过保存jpeg文件n时间数据会丢失,因为jpeg压缩是有损的,但是在运行下面的代码时没有任何变化
代码:
N = 100;
imfinfo('temp.jpg')
for i = 1: N
image = uint8(imread('temp.jpg'));
imwrite(image, 'temp.jpg','jpeg', 'Quality', 90,'Mode','lossy');
figure(0)
imshow(image)
imfinfo('temp.jpg')
end
答案 0 :(得分:2)
当你保存jpeg时,你会得到一定的信息丢失。虽然实际上更复杂,但想象一下浮点的最后几位被切断以减少信息量,从而减少文件大小。当你再次阅读它时,它已经是一个包含较少信息的图像,可以存储在jpeg中而不会进一步丢失。为了坚持简化,再次切断最后的数字不会造成进一步的麻烦,因为它们已经为零。