Hello, how to read a BMP image in MATLAB?

152 visualizzazioni (ultimi 30 giorni)
Bal Poudel
Bal Poudel il 30 Giu 2016
Commentato: Dinesh Iyer il 19 Lug 2016
I am trying to read the BMP image(160 x 120 x 24 BPP) produced by FLIR Lepton Sensor in MATLAB. I have also attached the BMP image here.I'm using MATLAB R2016a...I used the following command.
Background=imread('...\LeptonTest\current.BMP');
I got the following error:
Error using imbmpinfo>readBMPInfo (line 106)
Header size was 56 bytes. Only values of 12, 40, 64, 108, or 124 are supported.
Error in imbmpinfo (line 23)
metadata = readBMPInfo(fid, metadata);
Error in readbmp (line 14)
info = imbmpinfo(filename);
Error in imread (line 415)
[X, map] = feval(fmt_s.read, filename, extraArgs{:});
Please some body help me to fix this problem.

Risposte (3)

Dinesh Iyer
Dinesh Iyer il 5 Lug 2016
This appears to be a bug with IMREAD. The BMP file appears to use a BI_BITFIELD compression to store the image data which appears to be be tripping up IMREAD.
Sorry about this. Will update once a patch is ready.

Dinesh Iyer
Dinesh Iyer il 19 Lug 2016
The patch with the fix for this issue can be found at:
  4 Commenti
Image Analyst
Image Analyst il 19 Lug 2016
Sorry, I just thought it was a cute graphic. Actually I haven't tried the patch since I think it's for a fairly rare type of image that I don't use. Anyway, is this fix going to make it into the R2016b version? If not, I guess it would also have to be applied after installing R2016b.
Dinesh Iyer
Dinesh Iyer il 19 Lug 2016
This will not be making it to 16b but the patch in the link should work for 16b as well.

Accedi per commentare.


Geoff Hayes
Geoff Hayes il 30 Giu 2016
Bal - I get the same error when using R2014a. However, I was able to load this image into MATLAB as follows
>> open('current.BMP');
which would launch the Import Wizard. Pressing the Finish button created a variable called current which is a 120x160x3 array which I could display using the image command.
I'm not sure why there is a difference between using open and imread (i.e. why does open seem to support the 56 byte header but imread does not). Perhaps this should be logged as a bug.
  3 Commenti
Geoff Hayes
Geoff Hayes il 30 Giu 2016
Hi Bal - I'm not sure why the import wizard would not launch on your computer. What happens if you try to open by right-clicking on the file name in the MATLAB file browser. Or try,
uiimport('current.bmp')
Image Analyst
Image Analyst il 5 Lug 2016
open() on my computer also opens the binary data into a text editor window, like for bal. uiimport() did bring up a wizard, but I don't know what to do with it:

Accedi per commentare.

Categorie

Scopri di più su Images in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by