【阅读笔记】沙尘图像线性颜色校正A fusion-based enhancing approach for single sandstorm image

一、沙尘图像背景

沙尘图像处理面临的主要问题是色彩偏移和图像细节模糊,在去除偏色后利用改进的去雾算法对沙尘图像进行处理,但是由于沙尘和雾霾形成的原理不同,沙尘的颗粒半径接近25µm,远远大于雾霾(0.01 ~ 1µm)和雾(1 ~ 10µm),因此除雾算法模型不适用,容易出现色彩失真的问题。

由于沙尘天气下空气中悬浮的沙尘颗粒对蓝色光的吸收和对红色光的反射,沙尘暴图像一般呈现黄色,因为黄色光的穿透性和散射性最大,沙尘图像RGB三通道的直方图分布不均衡,同时存在分布较为集中,这使得图像整体看起来偏黄和偏红。沙尘环境下对视频图像采集的影响首先是色彩的偏移。

二、线性颜色校正

本文关注颜色校正部分,沙尘图的三通道直方图具有偏移性,要调整三通道的偏移性,以往的研究方法是通过对直方图进行建模,这样虽然能解决这个问题,但是也有可能会导致色彩失真等问题。

《A fusion-based enhancing approach for single sandstorm image》的作者对沙尘暴图像进行预处理,采用基于统计方法的颜色校正方法去除色差,使图像呈现自然的外观。

O m a x c = O m e a n c + μ ∗ O v a r c O m i n c = O m e a n c − μ ∗ O v a r c O_{max}^{c} =O_{mean}^{c}+\mu *O_{var}^{c} \\ O_{min}^{c} =O_{mean}^{c}-\mu *O_{var}^{c} Omaxc=Omeanc+μ∗OvarcOminc=Omeanc−μ∗Ovarc

其中,O表示输入图像,c表示RGB通道, O m e a n c O_{mean}^{c} Omeanc表示均值, O v a r c O_{var}^{c} Ovarc表示均方差, μ \mu μ是控制图像饱和度的参数,论文中参数为3。

O m a x c O_{max}^{c} Omaxc表示色偏最大估计值, O m i n c O_{min}^{c} Ominc表示色偏最小估计值。对每个颜色通道做归一化处理,得到:

O C R c = O c − O m i n c O m a x c − O m i n c ∗ 255 O_{CR}^{c} =\frac{O^{c}-O_{min}^{c}}{O_{max}^{c}-O_{min}^{c}}*255 OCRc=Omaxc−OmincOc−Ominc∗255

其中, O C R c O_{CR}^{c} OCRc是颜色校正后的数据分量。

三、论文后续处理

3.1 亮度改善

颜色校正不能解决光的吸收和散射导致的亮度不均匀问题,后续在HSV域对V分量使用gamma校正改善亮度问题、或者使用直方图均衡处理V通道提高图像对比度。

V ′ = 255 ( V 255 ) 1 γ V'=255(\frac{V}{255})^{\frac{1}{\gamma}} V′=255(255V)γ1

3.2 权重融合

sharpness weight map、chromatic weight map、prominence weight map三种权重结合进行图像融合,这里不展开了。

四、文章效果

对比算法都是拉伸图像动态范围,没有处理沙尘图像偏色问题

五、仿真效果

原理简单,直接复现,颜色校正效果还行,计算还比较简单,左图原始图,右图是仿真结果图

测试代码链接


我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

相关推荐
神明不懂浪漫1 小时前
【第二章】HTML2——表格、表单标签
开发语言·经验分享·笔记·html
十月的皮皮1 小时前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
时代文章2 小时前
GPT-SoVITS 模型测试笔记
笔记·gpt·语音识别
GLDbalala2 小时前
GPU PRO 5 - 3.3 Bokeh Effects on the SPU 笔记
笔记
ouliten2 小时前
[Triton笔记7]融合注意力 (Fused Attention)
人工智能·笔记·算法
几司2 小时前
第3章:图像传感器与ISP协同设计
isp
世***y2 小时前
有温度的服务,有品质的生活
笔记
逸模2 小时前
从 CAD+SU 到逸模|效果图制作,告别反复手动同步主旨
大数据·笔记·其他·信息可视化·产品经理
Flittly2 小时前
【AgentScope Java新手村系列】(1)框架简介与环境搭建
java·spring boot·笔记·spring·ai
星恒随风2 小时前
C++ 类和对象入门(四):日期类 Date 的运算符重载实现详解
开发语言·c++·笔记·学习