Python imread bug:"不支持的BMP位域布局"

时间:2016-03-14 23:06:58

标签: python image imread

我似乎在scipy.misc.imread中遇到了一个错误,我正在寻找一种解决方法。这是错误报告的剪辑:

from scipy.misc import imread
im = imread('380.bmp')
...

C:\Anaconda3\lib\site-packages\PIL\BmpImagePlugin.py in _bitmap(self, header, offset)
145                     raw_mode = MASK_MODES[(file_info['bits'], file_info['rgb_mask'])]
146                 else:
--> 147                     raise IOError("Unsupported BMP bitfields layout")
148             else:
149                 raise IOError("Unsupported BMP bitfields layout")

OSError: Unsupported BMP bitfields layout

我可以在图像查看器中毫无问题地打开图像,因此我确定它没有损坏。

主要问题是:什么是imread的最佳选择,所以我可以解决这个问题?或者,如果您知道修复imread的方法,那也会很好。

顺便说一句,我在Anaconda 2.4.1(64位)中使用Python 3.5.1

1 个答案:

答案 0 :(得分:0)

我在使用PIL.Image时遇到了同样的错误。我使用cv2绕过了这个问题。 我的代码是这样的:

import cv2 #pip install opencv-python
from PIL import Image #pip install pillow
temp_img = cv2.imread(filename.bmp)
img = Image.fromarray(temp_img)

您可以尝试以下操作:

import cv2
from scipy.misc import imread
temp_img = cv2.imread('380.bmp')
img = imread(temp_img)

好运。