python的直方图均衡化

Nic*_*ick 5 python image-processing histogram

我有这个例程来对照片进行直方图均衡:

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)

   return im2.reshape(im.shape), cdf

#im = array(Image.open('AquaTermi_lowcontrast.jpg').convert('L'))
im = array(Image.open('Unequalized.jpg').convert('L'))
#Image.open('plant4.jpg').convert('L').save('inverted.jpg')

im2,cdf = histeq(im)

plt.imshow(im2)
plt.savefig("outputhisto.jpg")
Run Code Online (Sandbox Code Playgroud)

当我使用wiki页面中的图片运行直方图均衡时,会产生以下结果: 在此输入图像描述

取而代之的适当调整图像的沿着线的东西对比度.我究竟做错了什么?

小智 5

你确定你没有使用错误的色彩图进行渲染吗?尝试

plt.imshow(im2, cmap=plt.cm.gray)
Run Code Online (Sandbox Code Playgroud)

要么

plt.imshow(im2, cmap=plt.get_cmap('gray'))
Run Code Online (Sandbox Code Playgroud)