怎么对图片直方图进行均衡化处理

 时间:2024-10-11 20:18:48

1、获取第一个通道的像素值统计数据:import c箪滹埘麽v2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('b.png',0)h,bins = np.histogram(img.flatten(),256,[0,256])

怎么对图片直方图进行均衡化处理

2、bins就是相应的亮度(像素值)。

怎么对图片直方图进行均衡化处理

3、绘制直方图:plt.plot(h,color = 'g')这是第一个通道,但是使用绿色。

怎么对图片直方图进行均衡化处理

4、累计小于某个像素值的像素数目:cdf = h.cumsum()嗯,cdf里面的数字只会递增或持平,不会下降。

怎么对图片直方图进行均衡化处理

5、把这个累计图画出来:plt.plot(cdf,color = 'g')plt.show()

怎么对图片直方图进行均衡化处理

6、把累计图压扁:cdf_normalized = cdf*h.max()/cdf.max()把压扁的累计图和直方图画到一起:plt.plot(h, color = 'g')plt.plot(cdf_normalized, color = 'b')

怎么对图片直方图进行均衡化处理
怎么对图片直方图进行均衡化处理

7、用orange来填充直方图:plt.plot(h, color = 'g&拭貉强跳#39;)plt.plot(cdf_normalized, color = '芟鲠阻缒b')plt.hist(img.flatten(),256,[0,256], color = 'orange')

怎么对图片直方图进行均衡化处理

8、增高原图的对比度:cdf_m = np.ma.masked_e孥恶膈茯qual(cdf,0)cdf_m = (cdf_m - cdf_m.m足毂忍珩in())*255/(cdf_m.max()-cdf_m.min())cdf = np.ma.filled(cdf_m,0).astype('uint8')img2 = cdf[img]cv2.imwrite('g.png',img2)

怎么对图片直方图进行均衡化处理

9、我们看看原图“b.png”的直方图。

怎么对图片直方图进行均衡化处理

10、在看看g.png的直方图。

怎么对图片直方图进行均衡化处理
  • Mathematica对于列表的各种操作①
  • Matlab App Designer基本使用之按钮组件
  • 如何使用Mathematica 11计算数的有效数字?
  • Mathematica对分式的操作
  • mat文件怎么打开
  • 热门搜索
    节俭养德手抄报 感恩亲情手抄报 关于三字经的手抄报 关于孝的手抄报内容 关于低碳环保的手抄报 成长手抄报内容 讲文明懂礼貌手抄报 我的未来不是梦手抄报 家乡手抄报 手抄报的内容