TypeError:使用matplotlib无法将图像数据转换为float

时间:2016-06-13 23:44:59

标签: python typeerror

我有一个基本程序,只需加载图像并将其打印在matplot中。 我通过“histeq”中的方法来均衡这个图像(我知道了skimage函数),当我运行它时,它给出了以下“TypeError:图像数据无法转换为浮动”

import matplotlib
import matplotlib.pyplot as plt
from numpy import histogram, cumsum, interp, array
import numpy as np
from PIL import Image
from skimage import data, img_as_float
from skimage import exposure

def histeq(im,nbr_bins=256):

   #get image histogram
   imhist,bins = histogram(im.flatten(),nbr_bins,normed=True)
   cdf = imhist.cumsum() #cumulative distribution function
   cdf = 255 * cdf / cdf[-1] #normalize

   #use linear interpolation of cdf to find new pixel values
   im2 = interp(im.flatten(),bins[:-1],cdf)
   print(cdf.size)
   return im2.reshape(im.shape), cdf

fig = plt.figure(figsize=(8, 5))

img = array (Image.open('AquaTermi_lowcontrast.jpg').convert('L'))

img = histeq(img)

#img = img_as_float(img)

axes_img = fig.add_subplot(2, 2, 2)
axes_img.set_axis_off()
axes_img.imshow(img, cmap=plt.cm.gray=-)


plt.show()

我不使用skimage工具的原因是因为我正在进行特定的均衡,称为二元子图像直方图均衡(DSIHE)。 基本上意味着它将通过直方图分割图像,并在两个部分中进行均衡。结果就是两部分的结合。

无论如何,这个错误类似于大代码,所以我只是为了举例而发布这个错误。 控制台显示: Error message

0 个答案:

没有答案