码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Picture-defogging:暗通道去雾法


    算法实现在本人的GitHub:https://github.com/wk123467/Picture-defogging.git

    目录

      • 算法原理
      • 原图
      • 暗通道计算方法
      • 大气光值计算方法
      • 大气折射率计算方法
      • 总结

    算法原理

    该算法使用McCarney大气散射模型 I ( x ) = J ( x ) t ( x ) + A ( 1 − t ( x ) ) I(x)=J(x)t(x)+A(1-t(x)) I(x)=J(x)t(x)+A(1−t(x)),其中 I ( x ) I(x) I(x)代表待去雾图片、 J ( x ) J(x) J(x)代表去雾图片、 t ( x ) t(x) t(x)代表大气折射率、 A A A代表大气光值,则可推断出去雾图片 J ( x ) = ( I ( x ) − A ) / t ( x ) + A J(x)=(I(x)-A)/t(x)+A J(x)=(I(x)−A)/t(x)+A。要想推断出去雾图片,需要计算出大气折射率 t ( x ) t(x) t(x)和大气光值 A A A,而他们均需要待去雾图片的暗通道。

    原图

    在这里插入图片描述

    暗通道计算方法

    1. 计算输入图片所有像素点位置在RGB三通道中的最小值,记为darkMat。例如,某个像素点位置的RGB三通道像素值为[r:34, g:45, b:18],则该位置选择像素值为18
    2. 对darkMat进行最小值滤波(或引导滤波),得到的暗通道示意图如下所示
      在这里插入图片描述

    大气光值计算方法

    1. 取暗通道前0.1%的像素值位置
    2. .找出待去雾图片对应的多个像素值位置
    3. 对这些像素值位置取平均,最终得到一个整数A

    大气折射率计算方法

    • 该计算方法为 t ( x ) = 1 − ω   × ( d a r k M a t A ) t(x)=1 - \omega \space\times(\frac{darkMat}{A}) t(x)=1−ω ×(AdarkMat​),其中 ω \omega ω为控制去雾程度,因为图片中包含雾可以使图片拥有纵深,更真实。此时得到的大气折射示意图如下所示
      在这里插入图片描述

    总结

    1. 通过大气折射模式的简单变换即可得到去雾图片,方便简洁,而且效果好
    2. 算法中实现了两种图像滤波(引导滤波(图上)、最小值滤波(图下)),得到的结果如下所示。从图中可以观察到引导滤波的效果更好
      在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    新型飞蛾火焰优化算法-附代码
    秋招面经第二弹:百度一面-大数据开发工程师
    前端入职配置新电脑!!!
    实现一个自定义的vue脚手架
    第一章学习
    【ROS2原理17】ROS 2 安全飞地
    线性模型(穷举法实现)
    python:numpy查询定位赋值数值所在行列
    Java装饰者模式详解:为对象动态添加功能
    ChatGPT AIGC Python实现自动切换年份进行动态图表可视化
  • 原文地址:https://blog.csdn.net/cxkyxx/article/details/126181245
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号