Hello, how to read a BMP image in MATLAB?

98 ビュー (過去 30 日間)
Bal Poudel
Bal Poudel 2016 年 6 月 30 日
コメント済み: Dinesh Iyer 2016 年 7 月 19 日
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.

回答 (3 件)

Dinesh Iyer
Dinesh Iyer 2016 年 7 月 5 日
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 2016 年 7 月 19 日
The patch with the fix for this issue can be found at:
  4 件のコメント
Image Analyst
Image Analyst 2016 年 7 月 19 日
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 2016 年 7 月 19 日
This will not be making it to 16b but the patch in the link should work for 16b as well.

サインインしてコメントする。


Geoff Hayes
Geoff Hayes 2016 年 6 月 30 日
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 件のコメント
Geoff Hayes
Geoff Hayes 2016 年 6 月 30 日
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 2016 年 7 月 5 日
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:

サインインしてコメントする。

タグ


Translated by