python3.6.5环境 opencv3.3.1进行直方图均衡

直方图平衡是很常用的图像处置方式,常用于图像加强,过曝处置,颜色平衡等方面。

本文采用python3.6.5+ opencv3.3.1在win7情况下进行直方图平衡。

东西/原料

  • opencv3.3.1
  • python3.6.5
  • win7+pycharm

方式/步调

  1. 1

    1:灰度图直方图平衡

    依然采用经典的lena图片作为源图片。

    import cv2 as cv

    import numpy as np

    import matplotlib.pyplot as plt

    img = cv.imread("c:\\lena.jpg")

    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    cv.imshow("Original Pic", gray)

    dst = cv.equalizeHist(gray)

    cv.imshow("Result equalizeHist Pic", dst)

    plt.hist(gray.ravel(), 256, [0, 256])                       

    plt.show()

    plt.hist(dst.ravel(), 256, [0, 256])                         

    plt.show()

    cv.waitKey(0)

  2. 2

    别离输出源图和处置后的图片,以及对应的直方图便于阐发

    2:源图以及直方图

  3. 3

    3:平衡后的灰度图以及直方图

    图片亮度加强了,直方图也与上图大分歧。

  4. 4

    4:彩色直方图处置,需要三个通道别离处置,最后再归并!

    import cv2 as cv

    import numpy as np

    import matplotlib.pyplot as plt

    img = cv.imread("c:\\lenacolor.jpg")cv.imshow("Original Pic", img)# 彩色图像对3个通道平衡化(b, g, r) = cv.split(img)bH = cv.equalizeHist(b)gH = cv.equalizeHist(g)rH = cv.equalizeHist(r)# 归并通道dst = cv.merge((bH, gH, rH))cv.imshow("Result equalizeHist Pic", dst)plt.hist(img.ravel(), 256, [0, 256]) plt.show()plt.hist(dst.ravel(), 256, [0, 256])                            plt.show()cv.waitKey(0)

  5. 5

    5:彩色源图以及直方图

    较着直方图并不平衡。

  6. 6

    6:平衡后的灰度图以及直方图

    图片颜色转变了,直方图也与上图分歧。

    但颜色有所掉真,可以考虑采纳其它方式处置更好。

    或者分块处置也可以。后续再进一步会商。

注重事项

  • 运行情况win7+pycharm+python3.6.5+ opencv3.3.1
  • 直方图仅仅是图像加强或者颜色校正的一种方式,并不是所有场景都有好的结果
  • 对于过曝图片yuv方式也是可以考虑的。
  • 发表于 2019-02-26 20:01
  • 阅读 ( 769 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具