OpenCV中实现图像去雾的方法是什么,具体如何实现
Admin 2022-07-05 群英技术资讯 1288 次浏览
这篇文章给大家分享的是OpenCV中实现图像去雾的方法是什么,具体如何实现。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。直方图均衡化的目的是将原始图像的灰度级均匀地映射到整个灰度级范围内,得到一个灰度级分布均衡的图像。这种均衡化,即实现了灰度值统计上的概率均衡,也实现了人类视觉系统上(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()
运行之后,效果如下:

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


虽然上面的灰度图像达到了去雾的基本效果,但是说实话,大多数实际的场景中,我们用到最多的往往是彩色图像。所以,掌握彩色图像的直方图均衡化处理,才是我们真正的实战技能。
下面我们来用代码实现彩色图像直方图均衡化处理,代码如下:
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()函数对彩色图像的每个颜色进行均衡化处理即可。当然,需要注意的是,我们处理完每个颜色之后,需要将图像再次合并。运行之后效果如下:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
当我们用python进行数据处理时会遇到很多缺失值,缺失值一般是由于我们所处理的数据本身的特性、当初录入的失误或者其它原因导致的,下面这篇文章主要给大家介绍了关于pandas返回缺失值位置的方法,需要的朋友可以参考下
这篇文章主要介绍了python+pytest接口自动化参数关联,参数关联,也叫接口关联,即接口之间存在参数的联系或依赖,更多相关内容需要的小伙伴可可以参考一下
Python为字典提供了一些很实用的内建方法,使用这些方法可以帮助读者在工作中应对涉及字典的问题,简化开发的步骤。此外,Python还提供了一些字典的常用操作。具体如下表:
我们在Python中经常会遇到给数值取整的问题,Python中有不同的取整方法,对应解决不同的取整问题。本文将向大家介绍Python中的取整方法:向上取整math.ceil(x)、向下取整math.floor(x)、四舍五入round()、向零取整int()。
只统计像素的灰度值这一特征,可将其成为一维直方图。二维直方图可以统计像素的色相和饱和度,用于查找图像的颜色直方图。本文将为大家介绍分别使用OpenCV和NumPy函数计算直方图,需要的可以学习一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008