How to read a large .img file

1 view (last 30 days)
Chad Greene
Chad Greene on 17 Jul 2014
Commented: Ashish Uthama on 18 Jul 2014
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 Comment
Ashish Uthama
Ashish Uthama on 18 Jul 2014
If you have a current version with Image processing toolbox, this blog post might be useful: "Dealing with “Really Big” Images: Block Processing"

Sign in to comment.

Accepted Answer

José-Luis
José-Luis on 17 Jul 2014
Edited: José-Luis on 17 Jul 2014
Sounds like a job for memmapfile()
doc memmapfile
Alternatively, you could split your image beforehand.
  2 Comments
Chad Greene
Chad Greene on 17 Jul 2014
Thanks for pointing me to memmapfile, José-Luis. This might just be the ticket.

Sign in to comment.

More Answers (0)

Categories

Find more on Denoising and Compression in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!