Landsat imagery is available in multiple data formats, most of which may be read with MATLAB or MATLAB toolboxes. You must first determine which format your data is in. Here are the most likely possibilities:
1. GeoTIFF -- Use GEOTIFFREAD function in the Mapping Toolbox or IMREAD in MATLAB. Note that GeoTIFF files have an image component and a geospatial component. IMREAD function in MATLAB can read only the image component. GEOTIFFREAD extracts georeferencing and geospatial coordinate system information, in addition to the imagery itself. Note that GEOTIFFREAD can not read a four layer GeoTIFF dataset.
2. HDF (Hierarchical Data Format) -- Use HDFREAD or HDFTOOL function in MATLAB.
3. LAN (older Erdas format) -- This format is no longer widely used. Either (1) construct your own code to read the simple, fixed-length header then call MULTIBANDREAD in MATLAB to extract the pixel values or (2) copy and use the subfunction LAN_READ from LANDSATDEMO in the Image Processing Toolbox. See the Image Processing Toolbox demo "Enhancing Multispectral Color Composite Images" (ipexlanstretch.m) for an example in which MULIBANDREAD is applied to a .LAN image.
4. IMG (Erdas Imagine native format) -- There is currently no support for this format in MATLAB. (If your data provider is using Imagine, request that they export in GeoTIFF instead.)
Best Answer