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 Kommentar

Ashish Uthama
Ashish Uthama am 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"

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

José-Luis
José-Luis am 17 Jul. 2014
Bearbeitet: José-Luis am 17 Jul. 2014

0 Stimmen

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

2 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Convert Image Type finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by