灰度图像直方图均衡化源码

灰度图像直方图均衡化源码
# 本质:统计每个像素灰度 出现的概率 0-255 p
# 累计概率 
# 1 0.2  0.2
# 2 0.3  0.5
# 3 0.1  0.6
# 256 
# 100 0.5 255*0.5 = new 
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
img = cv2.imread('image0.jpg',1)
#cv2.imshow('src',img) #显示原图 第二个参数图片名称

imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('src',gray) ##显示原图的灰度图像 第二个参数图片名称
count = np.zeros(256,np.float)
for i in range(0,height):
    for j in range(0,width):
        pixel = gray[i,j]
        index = int(pixel)
        count[index] = count[index]+1
for i in range(0,255):
    count[i] = count[i]/(height*width)
#计算每个像素累计概率
sum1 = float(0) # 累计概率和
for i in range(0,256):
    sum1 = sum1+count[i]
    count[i] = sum1
print('每个像素累计概率:\n',count)
# 根据累计概率计算映射表
map1 = np.zeros(256,np.uint16)
for i in range(0,256):
    map1[i] = np.uint16(count[i]*255)
# 映射
for i in range(0,height):
    for j in range(0,width):
        pixel = gray[i,j]
        gray[i,j] = map1[pixel]
cv2.imshow('dst',gray)
cv2.waitKey(0)
  • 结果

  • 每个像素累计概率:
     [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
     1.00172798e-04 5.70984949e-04 1.73799805e-03 3.47850041e-03
     5.42936566e-03 7.44784754e-03 9.49137262e-03 1.17377476e-02
     1.41919812e-02 1.75077008e-02 2.11214345e-02 2.47827502e-02
     2.86018382e-02 3.24960557e-02 3.65730886e-02 4.06050437e-02
     4.50627332e-02 4.96205955e-02 5.47243996e-02 5.99008289e-02
     6.53527335e-02 7.11327039e-02 7.68350404e-02 8.27051664e-02
     8.86529263e-02 9.48461095e-02 1.00758809e-01 1.06781698e-01
     1.12709424e-01 1.18747339e-01 1.24840350e-01 1.30968421e-01
     1.37289324e-01 1.43404873e-01 1.49773359e-01 1.56086750e-01
     1.62264907e-01 1.68460595e-01 1.74789011e-01 1.80929604e-01
     1.87222960e-01 1.93341013e-01 1.99504145e-01 2.05957777e-01
     2.12694398e-01 2.19551226e-01 2.26372993e-01 2.33555383e-01
     2.40965666e-01 2.48543738e-01 2.56394781e-01 2.64501265e-01
     2.72823120e-01 2.81533145e-01 2.90496106e-01 2.99979965e-01
     3.09361148e-01 3.19005284e-01 3.28686985e-01 3.38641657e-01
     3.48714032e-01 3.58490897e-01 3.68187624e-01 3.77969497e-01
     3.87743858e-01 3.97718565e-01 4.07250006e-01 4.16879116e-01
     4.25629210e-01 4.34494503e-01 4.43151937e-01 4.51361098e-01
     4.59189602e-01 4.66932959e-01 4.74383311e-01 4.81505597e-01
     4.88657935e-01 4.95547319e-01 5.02319000e-01 5.09328592e-01
     5.16328166e-01 5.23387844e-01 5.30147004e-01 5.36898650e-01
     5.43297188e-01 5.49615587e-01 5.55558338e-01 5.61258170e-01
     5.66682527e-01 5.72144449e-01 5.77180637e-01 5.82439708e-01
     5.87428314e-01 5.92209061e-01 5.96987303e-01 6.01793093e-01
     6.06759160e-01 6.11652601e-01 6.16433348e-01 6.21266685e-01
     6.26077484e-01 6.30978438e-01 6.35501240e-01 6.39961433e-01
     6.44589417e-01 6.49177331e-01 6.53562395e-01 6.58220430e-01
     6.62635546e-01 6.67025619e-01 6.71385640e-01 6.75805765e-01
     6.80243420e-01 6.84478225e-01 6.88788160e-01 6.93058025e-01
     6.97448098e-01 7.01492575e-01 7.05584633e-01 7.09666675e-01
     7.13651048e-01 7.17562796e-01 7.21364354e-01 7.25150885e-01
     7.28777141e-01 7.32130425e-01 7.35333450e-01 7.38734317e-01
     7.42092610e-01 7.45435877e-01 7.48453582e-01 7.51448749e-01
     7.54534071e-01 7.57326388e-01 7.59878290e-01 7.62470261e-01
     7.64834339e-01 7.67075706e-01 7.69144274e-01 7.71230372e-01
     7.73231324e-01 7.75084521e-01 7.76965265e-01 7.78688237e-01
     7.80333575e-01 7.82026496e-01 7.83576670e-01 7.84901455e-01
     7.86361474e-01 7.87528487e-01 7.88768125e-01 7.89912599e-01
     7.91077108e-01 7.92254138e-01 7.93453708e-01 7.94578147e-01
     7.95760186e-01 7.96984799e-01 7.98244472e-01 7.99459067e-01
     8.00781348e-01 8.02143698e-01 8.03573665e-01 8.04928502e-01
     8.06333425e-01 8.07896121e-01 8.09659162e-01 8.11449751e-01
     8.13330495e-01 8.15281360e-01 8.17477649e-01 8.20114698e-01
     8.23493025e-01 8.28168591e-01 8.34021187e-01 8.40186822e-01
     8.46532769e-01 8.53064035e-01 8.60136235e-01 8.67301094e-01
     8.74571135e-01 8.81903784e-01 8.89624602e-01 8.96801983e-01
     9.03771506e-01 9.10275225e-01 9.16363227e-01 9.22260900e-01
     9.28594325e-01 9.34078786e-01 9.39500639e-01 9.44531817e-01
     9.49099697e-01 9.53672585e-01 9.58220430e-01 9.62402645e-01
     9.66329418e-01 9.70216123e-01 9.73579425e-01 9.76972778e-01
     9.79860259e-01 9.82367083e-01 9.84453182e-01 9.86241266e-01
     9.87861561e-01 9.89399214e-01 9.90628835e-01 9.91698179e-01
     9.92662343e-01 9.93446195e-01 9.94169943e-01 9.94833588e-01
     9.95499737e-01 9.96143347e-01 9.96714332e-01 9.97302847e-01
     9.97856302e-01 9.98297062e-01 9.98712780e-01 9.99053367e-01
     9.99346372e-01 9.99614335e-01 9.99784628e-01 9.99872280e-01
     9.99939896e-01 9.99964940e-01 9.99979965e-01 9.99984974e-01
     9.99989983e-01 9.99992487e-01 9.99994991e-01 9.99994991e-01
     1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00
     1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00
     1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00
     1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00
     1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00]
    

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clark-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值