【智能算法应用】基于麻雀搜索算法的多尺度Retinex图像去雾方法


在这里插入图片描述

1.算法原理

【智能算法】麻雀搜索算法(SSA)原理及实现

多尺度Retinex算法

在Retinex算法中,雾化图像的形成可以总结为入射光和反射光的乘积:
I ( x , y ) = L ( x , y ) × R ( x , y ) (1) I(x,y)=L(x,y)\times R(x,y)\tag{1} I(x,y)=L(x,y)×R(x,y)(1)
其中,I(x,y)表示图像亮度,R(x,y)和L(x,y)分别代表反射分量和照明分量。
用于模拟周围环境的函数类似于通常用于单个神经元感受野的高斯差分函数:
L ( x , y ) = I ( x , y ) ∗ F ( x , y ) (2) L(x,y)=I(x,y)*F(x,y)\tag{2} L(x,y)=I(x,y)F(x,y)(2)
周围函数F(x,y):
F ( x , y ) = K exp ( − x 2 + y 2 2 σ 2 ) (3) F(x,y)=K\text{exp}\left(-\frac{x^2+y^2}{2\sigma^2}\right)\tag{3} F(x,y)=Kexp(2σ2x2+y2)(3)
其中,σ 是高斯周围空间尺度参数。下面展示不同σ 高斯函数图像,较大的σ 将强调色彩保真度但失去更多图像细节信息,而较小的 σ 则相反。
在这里插入图片描述
在这里插入图片描述

单尺度Retinex (single-scale Retinex, SSR) 算法:
r S S R , i ( x , y ) = l o g R i ( x , y ) = log ⁡ ( I i ( x , y ) ) − log ⁡ ( F i ( x , y ) ∗ I i ( x , y ) ) (4) \begin{aligned}&r_{SSR,i}(x,y)=\mathrm{log}R_{i}(x,y)\\&=\log(I_{i}(x,y))-\log(F_{i}(x,y)*I_{i}(x,y))\end{aligned}\tag{4} rSSR,i(x,y)=logRi(x,y)=log(Ii(x,y))log(Fi(x,y)Ii(x,y))(4)

多尺度Retinex(Multi-scale Retinex, MSR) 被提出来通过不同尺度的加权叠加来抵消单一尺度的影响:
R m s r , i = ∑ n = 1 N w n , i r n , i = ∑ n = 1 N w n , i ( log ⁡ ( I i ( x , y ) ) − log ⁡ ( F n , i ( x , y ) ∗ I i ( x , y ) ) ) (5) \begin{aligned}&R_{msr,i}=\sum_{n=1}^{N}w_{n,i}r_{n,i}\\&=\sum_{n=1}^{N}w_{n,i}\big(\log(I_{i}(x,y))-\log\big(F_{n,i}(x,y)*I_{i}(x,y)\big)\big)\end{aligned}\tag{5} Rmsr,i=n=1Nwn,irn,i=n=1Nwn,i(log(Ii(x,y))log(Fn,i(x,y)Ii(x,y)))(5)

2.多尺度Retinex图像去雾方法

考虑到去雾后的图像颜色自然,细节清晰和信息保留,适应度函数定义为:
P S N R = 20 ⋅ log ⁡ 10 ( M A X I M S E ) \mathrm{PSNR}=20\cdot\log_{10}\left(\frac{\mathrm{MAX}_{I}}{\sqrt{\mathrm{MSE}}}\right) PSNR=20log10(MSE MAXI)

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Yao L P, Pan Z. The Retinex-based image dehazing using a particle swarm optimization method[J]. Multimedia Tools and Applications, 2021, 80(3): 3425-3442.

5.代码获取

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值