当前位置: 首页 > news >正文

深夜修图指南:七行代码拯救你的暗光照片

低照度图像增强代码 7种算法 代码简单可靠,已应用于多篇文章

凌晨三点的监控画面总是糊成一团?手机拍的夜景全是噪点?今天咱们用七行代码破解低照度图像的魔法,这些方法都在顶会论文里实战过,保你朋友圈点赞翻倍。

1. 直方图均衡暴击法

最粗暴有效的增强方式莫过于直方图均衡,三行代码让像素值均匀分布:

import cv2 img = cv2.imread('low_light.jpg', 0) equ = cv2.equalizeHist(img)

这法子对X光片特好使,但用在夜景照片可能会让路灯变成太阳——对比度拉升太猛容易过曝,暗部细节直接起飞。

2. 分块柔光术(CLAHE)

聪明人想出了格子戏法,把图片切成小块分别处理:

clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8,8)) cl1 = clahe.apply(img)

clipLimit参数像美颜软件的力度调节,设成2-4比较安全。这个方法在医学影像增强中常见,处理皮肤纹理时比全局均衡细腻得多。

3. 伽马能量调节

显示器常用的伽马校正也能救场,调节幂指数控制亮度:

gamma = 2.2 inv_gamma = 1.0 / gamma table = np.array([((i / 255.0) ** inv_gamma) * 255 for i in np.arange(0, 256)]).astype("uint8") cv2.LUT(img, table)

伽马值大于1是提亮模式,小于1是暗房效果。工业检测中常用这个做金属表面反光抑制,配合阈值分割效果拔群。

4. 对数变换戏法

低照度图像增强代码 7种算法 代码简单可靠,已应用于多篇文章

应对大动态范围场景可以试试这个:

c = 255 / np.log(1 + np.max(img)) log_image = c * (np.log(img + 1)) log_image = np.array(log_image, dtype=np.uint8)

处理CT图像的重建数据时常用,能保住高光区域的层次感。记得先做归一化,不然会得到满屏雪花噪点。

5. 多尺度Retinex玄学

传说中模拟人眼适应的算法,分离光照和反射:

def single_scale_retinex(img, sigma): retinex = np.log10(img) - np.log10(cv2.GaussianBlur(img, (0,0), sigma)) return retinex

三个不同sigma值的结果加权融合就是MSRCR,这玩意在遥感图像去云层干扰时效果惊艳。但颜色保真度是个玄学问题,得靠蒙版混合来找补。

6. 暗通道去雾大法

原本用于去雾的暗通道先验,拿来处理低照度竟有奇效:

dark_channel = cv2.erode(cv2.min(img, axis=2), np.ones((15,15))) atmospheric_light = np.percentile(dark_channel, 99) transmission = 1 - 0.95 * dark_channel / atmospheric_light result = (img - atmospheric_light) / transmission + atmospheric_light

处理雾天监控视频时,这方法能让车牌突然现身。但暗区噪声会被放大,得配合导向滤波食用更佳。

7. Zero-DCE神经魔法

终极武器是端到端深度学习模型:

model = cv2.dnn.readNetFromONNX('zero_dce.onnx') blob = cv2.dnn.blobFromImage(img, scalefactor=1/255, size=(256,256)) model.setInput(blob) output = model.forward()

这个无监督模型在手机端实时运行,论文里的夜间增强对比图基本都是它生成的。自己训练的话准备200张未配对图片就能开炼,不过显卡得准备好速效救心丸。

这些方法在实战中常常组合出击——先用Zero-DCE整体提亮,CLAHE处理局部阴影,最后伽马校正压制高光。实验室师弟的顶会论文里,这套组合拳在LOL数据集上PSNR干到了23.7,比单方法提升近15%。下次遇到暗光图像别慌,挑两个方法叠buff试试,说不定审稿人问效果怎么来时,你还能微微一笑:这是商业机密。

http://www.jsqmd.com/news/396811/

相关文章:

  • 基础入门 React Native 鸿蒙跨平台开发:react-native-easy-toast三方库适配
  • 上海有哪些做研发数据管理的服务商?2026原创优选指南 - 冠顶工业设备
  • VisionMaster之平移旋转标定(十二点标定)
  • neovim报错:E319:No python3 provider found. Run :checkheaLth vim.provider
  • 定稿前必看!AI论文写作软件 千笔·专业论文写作工具 VS Checkjie,研究生专属神器!
  • 干货来了:自考必备的降AIGC工具 —— 千笔·降AIGC助手
  • 国内做得好的支付宝消费券回收平台推荐 - 京顺回收
  • 挺拔体态,悦见美好|武汉普拉提体态调整课程,禧悦帮你摆脱体态困扰 - 冠顶工业设备
  • 对比一圈后!继续教育必备的降AI率网站 —— 千笔·专业降AIGC智能体
  • Nginx源代码学习:六种算法、六个文件、两千行C——Nginx负载均衡的全部秘密
  • 实测对比后AI论文工具,千笔 VS 灵感风暴AI更贴合专科生需求
  • 互联网大厂Java求职面试实战:基于电商场景的技术问答及解析
  • 闲置京东e卡怎么回收?可可收主流渠道实测,安全高效不踩坑 - 可可收
  • .txt文件与.text文件区别(都是纯文本文件,没有本质区别,.text扩展名非主流,有的操作系统不能识别,建议用.txt)
  • 2026年市场上知名的环氧酚醛生产工厂哪家好,环氧玻璃钢/光固化保护套/石墨烯涂料/环氧酚醛,环氧酚醛厂家选哪家 - 品牌推荐师
  • RabbitMQ核心概念与Spring Boot集成实战
  • 山东一卡通想回收!一分钟搞懂操作流程和注意事项 - 团团收购物卡回收
  • 肤契:租客
  • 支付宝立减金到期就亏了!合规玩法一次学会 - 可可收
  • 闲置山东一卡通别浪费!可可收正规线上回收,余额轻松兑现价值 - 可可收
  • K8S Sidecar方案:监控MySQL健康状态并重启相应Java应用
  • K8S + Spring Boot 高可用实战:MySQL宕机后如何保证 Java 应用不重启自动恢复
  • 凸优化数学基础笔记(六):凸集、凸函数与凸规划
  • 题目1523:蓝桥杯算法提高VIP-打水问题
  • 获取的京东e卡套装用不上怎么回收? - 抖抖收
  • 酒店提质新抓手|BH酒店健身房器材选型指南,上海杰禾力解锁高端适配新路径 - 冠顶工业设备
  • 分期乐购物额度闲置不用?这样合规回收不浪费 - 可可收
  • 激光雷达(LiDAR):速腾聚创MX激光雷达技术深度解析、视场角覆盖范围定量分析【最远探测距离:200米】【视场角(FOV):120° x 25° 】
  • 2026年北京海瑞温斯顿手表维修推荐:非官方网点服务评测,解决时效与精度核心痛点 - 十大品牌推荐
  • 山东一卡通介绍与回收方法 - 抖抖收