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
为什么?
我也碰到了这种情况,发现是图片的读取路径或者格式有问题,不知道你是不是也是因为这个原因。
我就是因为读取图片的时候,只是读取了图片名字没有格式,最后加了.jpg就好了。大概率就是因为文件名或者文件路径有问题。opencv读取路径有问题不会报错的。你试试吧,希望有用
你直接复制的stackoverflow,怎么这么恶心
@智健: 其实你这种人最恶心,整天就是伸手党,也没见贡献过什么,还整天叭叭叭的叫,你有什么资格,哪怕我是复制的stackoverflow,我也是怀着一个帮助别人解决问题的心,而你呢?什么玩意!