How to read a large .img file

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 comentario

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

Iniciar sesión para comentar.

 Respuesta aceptada

José-Luis
José-Luis el 17 de Jul. de 2014
Editada: José-Luis el 17 de Jul. de 2014

0 votos

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

2 comentarios

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Convert Image Type en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 17 de Jul. de 2014

Comentada:

el 18 de Jul. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by