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 Commento

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

Accedi per commentare.

 Risposta accettata

José-Luis
José-Luis il 17 Lug 2014
Modificato: José-Luis il 17 Lug 2014
Sounds like a job for memmapfile()
doc memmapfile
Alternatively, you could split your image beforehand.

2 Commenti

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

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by