-->

TypeError: Image data cannot be converted to float

2019-01-02 21:23发布

问题:

import numpy as np
import cv2.cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('../Chrysanthemum.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

上面代码报错:

File "D:\software\python\lib\matplotlib\__init__.py", line 1855, in inner
return func(ax, *args, **kwargs)
File "D:\software\python\lib\matplotlib\axes\_axes.py", line 5487, in imshow
im.set_data(X)
File "D:\software\python\lib\matplotlib\image.py", line 649, in set_data
raise TypeError("Image data cannot be converted to float")
TypeError: Image data cannot be converted to float

为什么?

回答1:

我也碰到了这种情况,发现是图片的读取路径或者格式有问题,不知道你是不是也是因为这个原因。
我就是因为读取图片的时候,只是读取了图片名字没有格式,最后加了.jpg就好了。大概率就是因为文件名或者文件路径有问题。opencv读取路径有问题不会报错的。你试试吧,希望有用



标签: