OpenCV-Python直方图均衡化实现图像去雾


Posted in Python onJune 07, 2021

直方图均衡化

直方图均衡化的目的是将原始图像的灰度级均匀地映射到整个灰度级范围内,得到一个灰度级分布均衡的图像。这种均衡化,即实现了灰度值统计上的概率均衡,也实现了人类视觉系统上(HSV)的视觉均衡。

一般来说,直方图均衡化可以达到增强图像显示效果的目的。最常用的比如去雾。下面,我们来分别实现灰度图像去雾以及彩色图像去雾。

实现灰度图像去雾

在OpenCV中,它提供了函数cv2.equalizeHist()来实现直方图均衡化,该函数的完整定义如下:

def equalizeHist(src, dst=None):

src:原始图像,必须是8位单通道原始图像

dst:返回值,返回直方图均值化处理结果

下面,我们来通过该函数实现灰度图像直方图均衡化处理,代码如下:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("45.jpg", 0)
equ = cv2.equalizeHist(img)

cv2.imshow("1",img)
cv2.imshow("2",equ)
plt.figure("原始图像直方图")
plt.hist(img.ravel(), 256)
plt.figure("均衡化图像直方图")
plt.hist(equ.ravel(), 256)
plt.show()

cv2.waitKey()
cv2.destroyAllWindows()

运行之后,效果如下:

OpenCV-Python直方图均衡化实现图像去雾

左边为原图,右边是处理后的图像,可以看到图像前景的雾,基本已经去掉了。不过,我们还是看看处理前后的直方图结果分布。

OpenCV-Python直方图均衡化实现图像去雾

OpenCV-Python直方图均衡化实现图像去雾

实现彩色图像去雾

虽然上面的灰度图像达到了去雾的基本效果,但是说实话,大多数实际的场景中,我们用到最多的往往是彩色图像。所以,掌握彩色图像的直方图均衡化处理,才是我们真正的实战技能。

下面我们来用代码实现彩色图像直方图均衡化处理,代码如下:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("50.jpg")

blue = img[:, :, 0]
green = img[:, :, 1]
red = img[:, :, 2]
blue_equ = cv2.equalizeHist(blue)
green_equ = cv2.equalizeHist(green)
red_equ = cv2.equalizeHist(red)
equ = cv2.merge([blue_equ, green_equ, red_equ])

cv2.imshow("1",img)
cv2.imshow("2",equ)
plt.figure("原始图像直方图")
plt.hist(img.ravel(), 256)
plt.figure("均衡化图像直方图")
plt.hist(equ.ravel(), 256)
plt.show()

cv2.waitKey()
cv2.destroyAllWindows()

这里,我们只需要使用equalizeHist()函数对彩色图像的每个颜色进行均衡化处理即可。当然,需要注意的是,我们处理完每个颜色之后,需要将图像再次合并。运行之后效果如下:

OpenCV-Python直方图均衡化实现图像去雾

到此这篇关于OpenCV-Python直方图均衡化实现图像去雾的文章就介绍到这了,更多相关OpenCV-Python 图像去雾内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python解决字典中的值是列表问题的方法
Mar 04 Python
python实现挑选出来100以内的质数
Mar 24 Python
python获取外网ip地址的方法总结
Jul 02 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
python 统计文件中的字符串数目示例
Dec 24 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
Django数据库迁移常见使用方法
Nov 12 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 Python
OpenCV-Python实现人脸磨皮算法
Python实现拼音转换
Python实现简繁体转换
在Python中如何使用yield
Jun 07 #Python
python 爬取天气网卫星图片
Python实现天气查询软件
Python字典和列表性能之间的比较
You might like
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python批量制作雷达图的实现方法
2016/07/26 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python饼状图的绘制实例
2019/01/15 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
python实现数据分析与建模
2019/07/11 Python
python正则-re的用法详解
2019/07/28 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Python自省及反射原理实例详解
2020/07/06 Python
Pycharm Git 设置方法
2020/09/15 Python
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
厂区绿化方案
2014/05/08 职场文书
学校端午节活动方案
2014/08/23 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
党的群众路线调研报告
2014/11/03 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL