首页 > 其他分享 >OpenCV(图像对比度增强)

OpenCV(图像对比度增强)

时间:2024-09-30 17:03:36浏览次数:7  
标签:增强 均衡化 OpenCV 直方图 灰度 图像 对比度

目录



增强图像对比度是图像处理中的一个重要步骤,旨在提高图像中不同亮度区域之间的差异,使细节更加清晰和明显。对比度增强不仅可以改善图像的视觉效果,还在医学影像、遥感图像、计算机视觉等领域中具有广泛的应用。



1. 直方图均衡化

概述:直方图均衡化(Histogram Equalization)是一种常用的全局对比度增强方法,通过重新分配图像的灰度值,使得输出图像的灰度直方图尽可能均匀分布。

实现步骤:

  1. 计算输入图像的灰度直方图。
  2. 计算累积分布函数(CDF)。
  3. 使用CDF将原始灰度值映射到新的灰度值。

优点:

  • 简单易实现。
  • 能有效增强整体对比度,特别是对于低对比度图像效果显著。

缺点:

  • 对于存在多种亮度区域的图像,可能导致过度增强,产生噪声。
  • 不能保留局部对比度细节。


2. 自适应直方图均衡化

概述:自适应直方图均衡化(Adaptive Histogram Equalization, AHE)通过将图像划分为若干个小区域(tiles),分别对每个区域进行直方图均衡化,从而保留局部对比度。

实现步骤:

  1. 将图像划分为若干个子区域。
  2. 对每个子区域独立进行直方图均衡化。
  3. 在子区域之间进行平滑过渡,避免边界处出现明显的过渡。

优点:

  • 能增强图像的局部对比度,细节更加丰富。
  • 适用于具有不同亮度区域的图像。

缺点:

  • 可能会放大图像噪声,特别是在均匀区域。
  • 计算量较大,处理速度较慢。


3. 限制对比度自适应直方图均衡化

概述:限制对比度自适应直方图均衡化(Contrast-Limited Adaptive Histogram Equalization, CLAHE)是AHE的一种改进方法,通过限制对比度增强的幅度,避免过度增强和噪声放大。

实现步骤:

  1. 将图像划分为若干个子区域。
  2. 对每个子区域的直方图进行限制,防止某些灰度值过于集中。
  3. 进行直方图均衡化,并在子区域之间进行平滑过渡。

优点:

  • 保留局部对比度的同时,抑制噪声。
  • 适用于各种复杂场景的图像。

缺点:

  • 参数选择较为复杂,需要根据具体图像调整限制阈值。


4. 线性对比度拉伸

概述:线性对比度拉伸(Linear Contrast Stretching)通过线性变换将图像的灰度值映射到一个更宽的范围,从而增加对比度。

实现步骤:

  1. 确定输入图像的灰度范围(最小灰度值和最大灰度值)。
  2. 设定输出图像的目标灰度范围。
  3. 使用线性函数进行灰度值映射。

优点:

  • 简单易实现。
  • 能有效拉伸图像的灰度范围,提高对比度。

缺点:

  • 对于复杂图像效果有限,可能导致细节丢失。
  • 无法处理非线性对比度问题。


5. Gamma 校正

概述:

Gamma 校正通过非线性变换调整图像的亮度和对比度,特别适用于显示设备的亮度调整。

实现步骤:

  1. 选择合适的Gamma值(\(γ\))。
  2. 应用公式:\(O = I^γ\),其中 \(O\) 为输出像素值,\(I\) 为输入像素值,\(γ\) 为 Gamma 值。

优点:

  • 能有效调整图像的整体亮度和对比度。
  • 控制简单,参数直观。

缺点:

  • 需要选择合适的Gamma值,选择不当可能导致图像细节丢失。
  • 主要影响亮度,对比度增强效果有限。


6. Retinex 方法

概述:

Retinex理论基于人类视觉系统,旨在同时改善图像的亮度和对比度,并抑制阴影和高光区域的影响。

实现步骤:

  1. 对图像进行多尺度分解。
  2. 估计光照成分和反射成分。
  3. 分别调整光照和反射成分,重建增强后的图像。

优点:

  • 能有效改善图像的局部对比度和色彩均衡。
  • 保留图像的自然感和细节。

缺点:

  • 算法复杂,计算量大。
  • 参数调节较为困难,需根据具体应用场景调整。


7. 多尺度对比度增强

概述:多尺度对比度增强(Multi-Scale Contrast Enhancement)方法通过在不同尺度上处理图像,结合局部和全局对比度信息,达到更好的对比度增强效果。

实现步骤:

  1. 对图像进行多尺度分解,如使用高斯金字塔或小波变换。
  2. 分别在各个尺度上进行对比度增强处理。
  3. 将各个尺度上的处理结果融合,生成最终图像。

优点:

  • 能同时考虑全局和局部对比度,提高增强效果。
  • 保留更多图像细节,避免过度增强。

缺点:

  • 算法复杂,计算量较大。
  • 需要合理选择多尺度参数,调节难度较高。


8. 方法选择与应用场景

不同的对比度增强方法适用于不同的应用场景和图像类型:

  • 直方图均衡化适用于整体对比度较低的图像,但不适合有明显局部对比度需求的图像。
  • CLAHE适合需要局部对比度增强且不希望放大噪声的场景,如医学影像处理。
  • 线性对比度拉伸适用于简单对比度调整,适合快速预处理。
  • Retinex方法适用于需要同时处理亮度和色彩的自然场景图像。


总结

图像对比度增强方法多种多样,每种方法都有其独特的优势和适用场景。在实际应用中,选择合适的方法需要根据具体的图像特性和处理需求进行权衡。有时,结合多种方法或采用混合算法能够取得更好的对比度增强效果。

标签:增强,均衡化,OpenCV,直方图,灰度,图像,对比度
From: https://www.cnblogs.com/keye/p/18442156

相关文章

  • 加油站智能视频监控预警系统(AI识别烟火打电话抽烟) Python 和 OpenCV 库
    加油站作为存储和销售易燃易爆油品的场所,是重大危险源之一,随着科技的不断发展,智能视频监控预警系统在加油站的安全保障方面发挥着日益关键的作用,尤其是其中基于AI的烟火识别、抽烟识别和打电话识别功能,以及其独特的系统组网方式。加油站重大危险源监测(一)油品的易燃易爆性加油站储......
  • [数据集][图像分类]骨关节炎严重程度分类数据集14038张4分类
    数据集类型:图像分类用,不可用于目标检测无标注文件数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片图片数量(jpg文件个数):14038分类类别数:4类别名称:[“grade0”,“grade2”,“grade3”,“grade4”]每个类别图片数:类别名称图片数grade08080grade23691grade31843gra......
  • OPENCV判断图像中目标物位置及多目标物聚类
    文章目录在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再次进行拍摄。就类似于下面的图像:基于这个需求,在图像上就需要使......
  • 高点摄像山火烟雾检测数据集 共2890张图像,分辨率1920×1080,标注采用json格式,标注了每
    高点摄像山火烟雾检测数据集(并按照低、中详细标注烟雾浓度)。主要针对初期山火,任何野火检测系统的最重要目标是在火势扩大之前及时检测到火灾。在初期阶段,野火由非火焰性的燃烧烟雾组成,热量相对较低。在这个阶段识别火灾能够提供最佳的抑制机会。在这个阶段通常看不到火焰;因此,任......
  • opencv实战项目二十九:GrabCut分割人像
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、GrabCut介绍:二、opencv实现:三、效果:前言在数字图像处理领域,人像分割是一项极具挑战性的任务,它旨在从复杂背景中准确提取出人物图像。随着技术的不断发展,人像分割技术在许多领域都展......
  • 《OpenCV 计算机视觉》—— Harris角点检测、SIFT特征检测
    文章目录一、Harris角点检测1.基本思想2.检测步骤3.OpenCV实现二、SIFT特征检测1.SIFT特征检测的基本原理2.SIFT特征检测的特点3.OpenCV实现一、Harris角点检测OpenCV中的Harris角点检测是一种基于图像灰度值变化的角点提取算法,它通过计算每个像素点的响应函......
  • 基于OpenCV的实时年龄与性别识别(支持CPU和GPU)
    关于深度实战社区我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万+粉丝,拥有2篇国家级人工智能发明专利。社区特色:深度实战算法创新获取全部完整项目......
  • 小白也能学会!unet医学图像分割(附源码和中文论文)
    本文主要介绍如何通过unet模型来训练自己的图像分割模型。即使没有编程经验,对照步骤执行也能训练模型。文中涉及的显微镜细胞图像分割数据集、模型训练代码(pytorch)、unet中文版论文等资源放于文末获取。目录1.论文摘要2.算法简述3.代码介绍4.数据准备5.模型训练6.模......
  • matlab-批处理图像质量变化并形成折线图 (PSNR)
    %修改路径就能用,图片分辨率要一致%clc;clearall;closeall;tic;%清理内存file_path='E:\test\resources\image\';%批量图像所在的文件夹下file_save_path='E:\test\resources\SaveImage\';%要存储的地址img_path_list=dir(strcat(file_path,'*.jpg'));%获取批量bmp格式......
  • Windows环境下训练开源图像超分项目 ECBSR 教程
    ECBSR介绍ECBSR(Edge-orientedConvolutionBlockforReal-timeSuperResolution)是一种针对移动设备设计的轻量级超分辨率网络。它的核心是一种可重参数化的构建模块,称为边缘导向卷积块(ECB),这种模块在训练阶段通过多个路径提取特征,包括普通的3x3卷积、通道扩展-压缩卷积......