why after I use the imwrite function, the pixels in the image are changed diferrent? before I convert from double matrix to uint8 matrix ?

2 views (last 30 days)
embed1=uint8(blkproc(embed1,[8 8],@idct2));
imwrite(embed1,'embeddct.jpg');
AA=imread('embeddct.jpg');

Answers (1)

Looky
Looky on 8 Nov 2017
Edited: Looky on 8 Nov 2017
This is likely a result from the compression/decompression process involved when saving to a jpg file. Choose a better suited file format like '.bmp' if you want the exact equality of saved and loaded data.
imwrite(embed1,'embeddct.bmp');
AA=imread('embeddct.bmp');
Edit: Here is a better explanation of this problem and how to fix it.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!