直方图均衡化 Python实现

博客介绍了如何在Python中实现直方图均衡化,通过将histeq函数放入imtools.py模块,然后导入该模块来调用该功能,从而显示直方图均衡化的图像。
摘要由CSDN通过智能技术生成
import os
from PIL import Image
from numpy import *

def histeq (im,nbr_bins =256):
    # 对一副灰度图像进行直方图均衡化
    #该函数有两个输入参数,一个是灰度图像,一个是直方图中使用小区间的数目
    #函数返回直方图均衡化后的图像,以及用来做像素值映射的累计分布函数
    # 计算图像的直方图
    imhist,bins =histogram(im.flatten(),nbr_bins,normed=True)
    cdf =imhist.cumsum() #cumulative distribution function
    cdf =255*cdf/cdf[-1] #归一化,函数中使用累计分布函数的最后一个元素(下标为-1,目标是
    # 将其归一化到0-1范围 )
    # 使用累计分布函数的线性插值,计算新的像素值
    im2=interp(im.flatten(),bins[:-1],cdf) # im2 is an array
    return im2.reshape(im.shape),cdf

如果想显示直方图均衡化后的图像,需要把array转为图像

因为自己把histeq 函数放到imtools,py中去了,所以调用的时候,需要import imtools

from PIL import Image
from numpy import *
from pylab import *
import imtools
import matplotlib.pyplot as plt

im =array(Image.open('cat.jpg').convert('L'))
im2,cdf=imto
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值