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)

Categorie

Scopri di più su Convert Image Type in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by