广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

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

    来源:网络收集  点击:  时间:2024-07-24
    【导读】:
    高质量的图片,一定不是特别亮。如果图片特别亮,就只能看到一个白耀化。类似的,如果图像直方图特别窄,对比度也不会太好。为了增加对比度,就需要对图片进行直方图均衡化处理。工具/原料more电脑python3+方法/步骤1/10分步阅读

    获取第一个通道的像素值统计数据:

    import cv2

    import numpy as np

    from matplotlib import pyplot as plt

    img = cv2.imread(b.png,0)

    h,bins = np.histogram(img.flatten(),256,)

    2/10

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

    3/10

    绘制直方图:

    plt.plot(h,color = g)

    这是第一个通道,但是使用绿色。

    4/10

    累计小于某个像素值的像素数目:

    cdf = h.cumsum()

    嗯,cdf里面的数字只会递增或持平,不会下降。

    5/10

    把这个累计图画出来:

    plt.plot(cdf,color = g)

    plt.show()

    6/10

    把累计图压扁:

    cdf_normalized = cdf*h.max()/cdf.max()

    把压扁的累计图和直方图画到一起:

    plt.plot(h, color = g)

    plt.plot(cdf_normalized, color = b)

    7/10

    用orange来填充直方图:

    plt.plot(h, color = g)

    plt.plot(cdf_normalized, color = b)

    plt.hist(img.flatten(),256,, color = orange)

    8/10

    增高原图的对比度:

    cdf_m = np.ma.masked_equal(cdf,0)

    cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min())

    cdf = np.ma.filled(cdf_m,0).astype(uint8)

    img2 = cdf

    cv2.imwrite(g.png,img2)

    9/10

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

    10/10

    在看看g.png的直方图。

    PYTHON图像处理
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.ff371.cn/art_999707.html

    相关资讯

    ©2019-2020 http://www.ff371.cn/ 国ICP备20009186号05-18 03:16:21  耗时:0.851