How to compress the image ?
Mostra commenti meno recenti
for example, I have a 3D image in grayscale, 512X512X300.
I just want to compress it in X and Y plane.
I want 4 pixels to combine into one pixel.
And the value of the combined pixel takes average on that 4 pixels or take its max.
Can I directly do on 3D image? If not, please tell me how to do it on 2D image.
Thanks.
Risposte (2)
Image Analyst
il 29 Ago 2014
1 voto
Just save it as a .mat file. This is a proprietary binary format that will probably be fairly compressed, and anyway, it will make it convenient to read back in to MATLAB.
6 Commenti
tabw
il 30 Ago 2014
Image Analyst
il 30 Ago 2014
Just save the whole variable. If the variable is a 3D array, save that.
save(filename, 'array3d');
tabw
il 31 Ago 2014
Image Analyst
il 31 Ago 2014
No you don't use imresize(). That changes the number of rows and columns in the image. save() saves the image to disk with fewer bytes than when it's loaded into memory, or saved to disk with a sequence of uncompressed 2D images. I have no idea what you want to do after that - you didn't say. All you said is you want to compress it (not resize it - they're very very different).
tabw
il 2 Set 2014
Image Analyst
il 2 Set 2014
Then use imresize().
Yawar Rehman
il 3 Set 2014
image analyst is rigth, i think you have a stack 300 gray scale images whose dimensions are 512x512.
compression usually involves techniques like principal components analysis. but from your question it is more evident that you want to downsample an image by the factor of 1/4 rather than compress. i think this would be useful!
% images you have
imgs = zeros(512,512,300);
% downsample by 1/4
downImages = imresize(imgs,1/4);
Categorie
Scopri di più su Convert Image Type in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!