news 2026/5/30 23:08:16

计算机视觉——Opencv(直方图均衡化)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机视觉——Opencv(直方图均衡化)

直方图均衡化:

是一种图像增强技术,它可以通过增加图像的对比度和亮度来改善图像的质量。

实现方法:通过将图像的像素值分布均匀化来实现这一目标。

在Python OpenCV中,可以使用cv2.equalizeHist()函数来实现直方图均衡化。

一、导入相关库

import cv2 import numpy as np import matplotlib.pyplot as plt

二、读取图片并转化成灰度图

black = cv2.imread(r"C:\Users\LEGION\Desktop\1267f39b0d164ab18ef783d5de65ebb4.jpg",cv2.IMREAD_GRAYSCALE)

三、绘制原始图像直方图

直观了解像素分布

plt.hist(black.ravel(),bins=256)#numpy中的ravel将数组多维度拉成一维数组 plt.show()

直方图是图像像素值的统计分布图,以灰度值(0~255)为横轴,以对应灰度值的像素点数量为纵轴,能够清晰地展示图像中暗像素、亮像素的分布比例,是我们判断图像对比度高低的重要依据。

运行结果:

四、全局直方图均衡化

简单高效的整体优化

black_equalize = cv2.equalizeHist(black) plt.hist(black_equalize.ravel(),bins=256)#numpy中的ravel将数组多维度拉成一维数组 plt.show()

cv2.equalizeHist():OpenCV 封装的全局直方图均衡化接口,该接口仅接收灰度图像(二维数组)作为输入参数,返回值为处理后的灰度图像

运行结果:

对比展示原始图像与全局均衡化图像

#横向拼接两张图像(要求两张图像尺寸一致) res =np.hstack((black,black_equalize)) # 显示拼接后的图像 cv2.imshow('black_equalize',res) cv2.waitKey(0)

np.hstack():NumPy 提供的横向拼接数组方法,能够将多个尺寸一致的数组沿水平方向拼接成一个新数组。

注意:拼接的多张图像必须具有相同的高度和通道数(本次均为灰度图像,通道数为 1),否则会拼接失败。

运行结果:

通过对比可以发现,全局直方图均衡化后的图像整体亮度明显提升,暗部细节得到了一定程度的展现,对比度相较于原始图像有了质的飞跃。

缺陷:如果图像中存在大面积的亮区或暗区(例如逆光拍摄的人脸、夜晚的天空),全局均衡化会过度放大这些区域的噪点,同时丢失大量细节 —— 因为它将整个图像作为一个整体进行处理,无法兼顾局部区域的像素分布差异。

五、自适应直方图均衡化(CLAHE)

兼顾局部细节的优化方案

自适应直方图处理又叫局部直方图处理,通过局部调整图像的直方图分布来提升图像的对比度和细节表现力,当需要保存细节特征,需要做局部处理

clahe = cv2.createCLAHE(clipLimit=10,tileGridSize=(8,8))#通过类创建了一个局部均衡化对象 black_clahe = clahe.apply(black) # 横向拼接三张图像,对比展示效果 res = np.hstack((black,black_equalize,black_clahe)) cv2.imshow('black_equalize',res) cv2.waitKey(0)

cv2.createCLAHE():用于创建 CLAHE 对象,该方法有两个核心可选参数,也是影响自适应均衡化效果的关键:

  1. clipLimit:对比度裁剪阈值,默认值为 8。该参数用于限制每个小区域的对比度,值越大,对比度提升越明显,但同时也越容易引入噪点;值越小,对比度提升越温和,细节保留越完整,适合噪点较多的图像。本次实战设置为 10,以获得更明显的局部对比度提升效果。

  2. tileGridSize:小区域(瓦片)的网格大小,默认值为 (8, 8),表示将整个图像分割成 8×8 的网格,即 64 个互不重叠的小区域。该参数的取值需要适中:网格过小,会增加计算量,同时容易产生块状伪影;网格过大,处理效果会接近全局直方图均衡化,无法体现局部优化的优势。

clahe.apply(black):将创建好的 CLAHE 对象应用到原始灰度图像上,返回值为处理后的灰度图像。该方法会自动完成图像分割、局部均衡化、对比度裁剪和图像拼接等一系列操作,无需我们手动干预。

运行结果:

效果对比分析

通过对比可以清晰地发现:

  1. 原始图像:对比度偏低,细节模糊,暗部区域几乎无法分辨细节。

  2. 全局均衡化图像:整体对比度提升明显,但局部区域(如大面积暗部或亮部)细节丢失严重,噪点被过度放大。

  3. 自适应均衡化图像:不仅整体对比度得到了提升,局部细节也保留得非常完整,暗部的细微纹理和亮部的层次都能够清晰展现,同时没有明显的噪点放大问题,视觉效果远优于全局直方图均衡化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 3:12:53

<span class=“js_title_inner“>周涛结束了和丈夫的12年婚姻,她说:这段婚姻太痛苦了,让我身心俱疲</span>

在大众眼中,周涛宛如一颗璀璨的星辰,在主持界熠熠生辉。她以优雅的气质、专业的能力和亲和的形象,成为无数人心中的偶像。然而,光鲜亮丽的背后,她的情感生活却历经波折。周涛结束了与丈夫长达12年的婚姻,这…

作者头像 李华
网站建设 2026/5/28 21:44:11

25. 图集

1.图集简介1.图集简介 图集的作用a.核心: 降低 DrawCallGPU渲染时, 每切换一次纹理就要重新绑定纹理资源, 这个过程会产生一次DrawCall; 图集把多个小纹理合并成一张大纹理,渲染时只需要绑定一次图集纹理, 就能渲染所有来自该图集的精灵/UI 元素, 大幅减少DrawCall(尤其是UI、2…

作者头像 李华
网站建设 2026/5/30 14:17:50

a16z 最新AI市场状态报告:独角兽崛起与科技超级周期

State of Markets: The Rise of Unicorns and the Tech Supercycle 摘要 a16z发布首份"市场状态"报告,揭示2025年私募与公募市场的关键趋势。数据显示,顶级公司收入增长呈指数级爆发,私募独角兽总估值突破5万亿美元大关。科技公司在公开市场持续领跑,形成独立超级周…

作者头像 李华
网站建设 2026/5/30 14:15:44

18天解决“设计权侵权”封号, 完整申诉思路

亚马逊涉嫌知识产权侵权(涉嫌设计权滥用)申诉案例账户站点:JP停用原因:涉嫌知识产权侵权(涉嫌设计权滥用)预警时间:2024年2月12日接单时间:2024年2月20日恢复时间:2024年…

作者头像 李华