I have a 4 GB image file that Matlab is choking on. I'd like to get this file into Matlab. Here is the code that makes my computer freeze:
fid=fopen('myimage.img','r','l');
M=fread(fid,[48333,41779],'uint16');
fclose(fid);
Equivalent code works well for a similar, smaller image, but this image is large. Subsetting into quadrants or sixteenths would be fine by me, but I don't know how to subset for a .img file. I know subsetting a tiff works with imread. Any suggestions for getting this big image into Matlab?

1 commentaire

Ashish Uthama
Ashish Uthama le 18 Juil 2014
If you have a current version with Image processing toolbox, this blog post might be useful: "Dealing with “Really Big” Images: Block Processing"

Connectez-vous pour commenter.

 Réponse acceptée

José-Luis
José-Luis le 17 Juil 2014
Modifié(e) : José-Luis le 17 Juil 2014

0 votes

Sounds like a job for memmapfile()
doc memmapfile
Alternatively, you could split your image beforehand.

2 commentaires

Chad Greene
Chad Greene le 17 Juil 2014
Thanks for pointing me to memmapfile, José-Luis. This might just be the ticket.
José-Luis
José-Luis le 17 Juil 2014
Glad to help.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by