news 2026/6/16 12:03:57

基于Retinex模型和多尺度融合的低光照图像增强技术探索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于Retinex模型和多尺度融合的低光照图像增强技术探索

基于Retinex模型和多尺度融合的低光照图像增强技术 提出了一种亮度调整、锐化和多尺度融合相结合的算法。 首先对原图像分解出光照图,基于Retinex模型进行估计,并进行伽马矫正,得到亮度均衡的图像;为补偿伽马矫正导致过曝区域的细节丢失,对原图像进行锐化处理,以提升图像细节部分;最后在多尺度融合金字塔模型下,根据计算两个输入图像的权重进行多尺度融合,得到最终的增强图像。 此外,还计算了五个非参考图像质量评价指标(BRISQUE,CEIQ,ENIQA,NIQE,PIQE)。

在图像处理领域,低光照图像增强一直是个热门且具有挑战性的话题。今天咱们来聊聊一种将亮度调整、锐化和多尺度融合相结合的算法,它基于Retinex模型与多尺度融合技术,能有效提升低光照图像的质量。

1. 基于Retinex模型估计光照图并伽马矫正

Retinex模型的核心思想是将图像的亮度信息分解为反射分量和光照分量。咱们先从原图像中分解出光照图。假设原图像为img,在Python中,利用OpenCV库读取图像:

import cv2 img = cv2.imread('low_light_image.jpg')

接下来估计光照图。这里可以使用高斯滤波来平滑图像,近似得到光照分量。

import numpy as np # 将图像转换到灰度图 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用高斯滤波估计光照图 blurred = cv2.GaussianBlur(gray, (21, 21), 0)

得到光照图blurred后,基于Retinex模型的简单做法是通过原图像与光照图的运算,分离出反射分量。但这里我们还要进行伽马矫正。伽马矫正主要用于调整图像的亮度分布,公式为:$I{corrected}=I{original}^{\frac{1}{\gamma}}$ ,其中$\gamma$是伽马值。

gamma = 0.5 corrected = np.power(gray / 255.0, gamma) * 255.0 corrected = np.uint8(corrected)

这样我们就得到了亮度均衡的图像corrected

2. 锐化处理补偿细节丢失

伽马矫正虽然能均衡亮度,但可能会导致过曝区域细节丢失。为了补偿这部分细节,需要对原图像进行锐化处理。锐化通常可以通过卷积操作实现,比如使用拉普拉斯算子。

laplacian = cv2.Laplacian(gray, cv2.CV_64F) laplacian = np.uint8(np.absolute(laplacian)) sharpened = float(1.5) * gray - float(0.5) * laplacian sharpened = np.maximum(sharpened, 0) sharpened = np.minimum(sharpened, 255) sharpened = np.uint8(sharpened)

上述代码中,先通过拉普拉斯算子计算出图像的高频信息,然后通过权重运算增强高频部分,从而锐化图像,提升细节。

3. 多尺度融合得到最终增强图像

多尺度融合金字塔模型是关键。我们要根据计算两个输入图像(亮度均衡后的图像和锐化后的图像)的权重来进行多尺度融合。首先构建高斯金字塔和拉普拉斯金字塔。

# 构建高斯金字塔 gaussian_pyramid_1 = [corrected] gaussian_pyramid_2 = [sharpened] for i in range(6): corrected = cv2.pyrDown(corrected) sharpened = cv2.pyrDown(sharpened) gaussian_pyramid_1.append(corrected) gaussian_pyramid_2.append(sharpened) # 构建拉普拉斯金字塔 laplacian_pyramid_1 = [gaussian_pyramid_1[5]] laplacian_pyramid_2 = [gaussian_pyramid_2[5]] for i in range(5, 0, -1): size = (gaussian_pyramid_1[i - 1].shape[1], gaussian_pyramid_1[i - 1].shape[0]) laplacian_1 = cv2.subtract(gaussian_pyramid_1[i - 1], cv2.pyrUp(gaussian_pyramid_1[i], dstsize = size)) laplacian_2 = cv2.subtract(gaussian_pyramid_2[i - 1], cv2.pyrUp(gaussian_pyramid_2[i], dstsize = size)) laplacian_pyramid_1.append(laplacian_1) laplacian_pyramid_2.append(laplacian_2)

然后根据权重计算融合后的金字塔。

# 计算权重并融合 weighted_laplacian_pyramid = [] for i in range(6): weight = np.mean(laplacian_pyramid_1[i]) / (np.mean(laplacian_pyramid_1[i]) + np.mean(laplacian_pyramid_2[i])) weighted_lap = weight * laplacian_pyramid_1[i] + (1 - weight) * laplacian_pyramid_2[i] weighted_laplacian_pyramid.append(weighted_lap)

最后通过重建金字塔得到最终增强图像。

# 重建图像 reconstructed = weighted_laplacian_pyramid[0] for i in range(1, 6): size = (weighted_laplacian_pyramid[i].shape[1], weighted_laplacian_pyramid[i].shape[0]) reconstructed = cv2.pyrUp(reconstructed, dstsize = size) reconstructed = cv2.add(reconstructed, weighted_laplacian_pyramid[i])

reconstructed就是我们最终得到的增强图像。

4. 非参考图像质量评价指标

此外,为了衡量增强效果,计算了五个非参考图像质量评价指标:BRISQUE,CEIQ,ENIQA,NIQE,PIQE。在Python中,可以使用scikit - image库来计算部分指标。例如NIQE指标:

from skimage.measure import niqe niqe_score = niqe(reconstructed) print(f"NIQE score: {niqe_score}")

这些指标能从不同角度评估图像质量,帮助我们了解增强算法的有效性。

基于Retinex模型和多尺度融合的低光照图像增强技术 提出了一种亮度调整、锐化和多尺度融合相结合的算法。 首先对原图像分解出光照图,基于Retinex模型进行估计,并进行伽马矫正,得到亮度均衡的图像;为补偿伽马矫正导致过曝区域的细节丢失,对原图像进行锐化处理,以提升图像细节部分;最后在多尺度融合金字塔模型下,根据计算两个输入图像的权重进行多尺度融合,得到最终的增强图像。 此外,还计算了五个非参考图像质量评价指标(BRISQUE,CEIQ,ENIQA,NIQE,PIQE)。

基于Retinex模型和多尺度融合的这种算法,通过亮度调整、锐化和多尺度融合的有机结合,为低光照图像增强提供了一种有效的解决方案,并且通过非参考图像质量评价指标能更好地优化和评估算法效果。

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

GeotrustOV通配符SSL证书续费

续费GeoTrust组织验证(OV)通配符SSL证书涉及以下几个方面:您可以在证书到期前最多90天通过您的供应商(例如Gworg)发起续订,生成新的证书签名请求(CSR),并完成组织验证流程。证书有效期最长为200天,可通过管…

作者头像 李华
网站建设 2026/6/15 2:10:06

多台三相逆变器并联仿真:基于VSG控制的功率均分探索

多台三相逆变器并联(本模型为三台并联,市面上多为两台并联)matlab/simulink仿真。 功能:实现并联系统中各逆变器输出功率均分。 (有能力的话还可以研究下垂特性、功率指令以及静态功工作点三者之间的联系) …

作者头像 李华
网站建设 2026/6/16 4:00:53

理解mybatis向上抽取的概念

1. 先理解 “向上抽取” 的核心概念“向上抽取” 本质是面向抽象编程 通用逻辑复用 的设计思想:把数据库操作(CRUD)中重复、通用、固定的逻辑 从业务代码中抽离出来,封装到更上层的抽象层(比如通用父类 / 接口&#x…

作者头像 李华
网站建设 2026/6/8 16:29:03

SpringBoot 开发第二天 学习内容

本次学习核心围绕SpringBoot Web 开发展开,涵盖静态资源映射、模板引擎 Thymeleaf、SpringMVC 整合与扩展、嵌入式 Servlet 容器配置及外置 Servlet 容器部署五大核心模块,同时涉及 SpringBoot 自动配置的底层原理和实际开发中的扩展技巧。 一、Web 开发…

作者头像 李华
网站建设 2026/6/15 18:07:19

你的仓库,还停留在“人找货”的时代吗?

多少库管员在数万平方米的仓库里奔走,只为了一纸调拨单;月底盘点,账实不符是常态,谁也说不清问题出在哪一环;客户急着要货,系统显示有库存,实物却怎么也找不到……如果你的仓库管理依然依赖经验…

作者头像 李华
网站建设 2026/6/13 16:59:27

运算放大器:常用电路

转载:https://cloud.tencent.com/developer/article/1971052 01 反相比例运算电路 02 同相比例运算电路 03 电压跟随器 04 反相求和运算电路 05 同相求和运算电路 06 加减运算电路 07 加减电路 08 积分运算电路 09 实用积分电路 010 微分运算电路 011 实…

作者头像 李华