> # ♻️ 资源
> **大小:** 20.0MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010439**](https://www.yuque.com/sxbn/ks/100010439)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87388346**](https://download.csdn.net/download/s1t16/87388346)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 数字图像处理大作业-图像去雾
# 一、总述
本次大作业要求调研实现去雾算法,发现其中的问题,并对算法进行改进。
我首先实现了基于暗原色先验的去雾算法,并从运算速度和去雾效果方面进行了一定的改进。之后,我训练了 AOD 卷积网络来进行图像去雾,并对数据集图片做一定的处理,增加了网络的鲁棒性,去雾效果也很不错。暗原色先验的去雾算法使用 MATLAB 实现,使用 MATLAB 的 GUI 设计了用户界面;AOD 卷积网络使用 Python 实现,使用 pyqt 设计了用户界面。
# 二、文献调研
室外图像的质量有时会因为雾和霾的原因有所下降,空气中的灰尘和水气对光线的吸收和散射,使得进入摄像机镜头的光混杂了白光,从而导致实际景象的对比度降低。
去雾算法一直受到研究者的关注,传统的去雾算法有多图片去雾和单图片去雾两大类。Shwartz, Namer, and Schechner (2006)利用多张不同角度拍摄图片的信息来实现去雾,属于多图片去雾算法。在深度神经网络广泛应用之前,单图片去雾的算法已经取得了一定成就。Tan (2008)发现无雾图像一定比有雾图像对比度更高,他使用最大化局部对比度的方法实现去雾,但这种方法可能带来色彩的失真。Fattal (2008)通过估计场景的反射率的方法去雾,他假定光传播与表面纹理局部无关。他的方法能较好的保留景象的色彩,但对浓雾的处理效果较差。
2011年提出的暗原色先验方法(K. He, Sun, & Tang, 2011)引起了学界的广泛关注,但方法基于暗原色假设,使用简洁明了的公式处理有雾图像,在色彩不失真的前提下有效地去除雾气。本文中使用的第一种算法也是基于暗原色假设。
近年来,深度神经网络得到广泛应用,在图像去雾领域也不例外。Ren et al. (2016)使用多尺度的网络进行去雾,首先使用训练一个网络来预测图片整体的传递函数,再用一个网络进行细化,与传统的去雾流程有些相似。2017 年提出 AOD-net 使用端到端的网络实现去雾(Li, Peng, Wang,Xu, & Feng, 2017),网络结构精巧,参数量少,但去雾效果很好。与之前的方法不同,AOD 直接将原图输入模型得到去雾后的图像,这有利于直接训练模型来减少结果图像与 ground truth 的误差。本文使用的第二种方法便是基于 AOD。
# 三、暗原色先验算法
## 3.1 基本模型
去雾算法广泛使用的模型如下:
![](https://www.yuque.com/api/services/graph/generate_redirect/latex?I(x)%20%3D%20J(x)t(x)%2BA(1-t(x))%0A#card=math&code=I%28x%29%20%3D%20J%28x%29t%28x%29%2BA%281-t%28x%29%29%0A&id=i82WO)
其中,I(x)是有雾图像,J(x)是无雾图像,t(x)是透射率,A是全局背景光。如果估算出了t(x)和A,那么无雾图片就能用下面的公式计算出来:
![937ebc4c096c953d2ef2667525254e02.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503303518-6feda9a4-ecc0-4b26-8945-ed403f5f0456.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=89&id=u64fe1812&originHeight=111&originWidth=396&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=4985&status=done&style=none&taskId=u6719818b-80a0-4a0c-881a-e429176623a&title=&width=316.8)
实际应用,为了防止()的值过小,会引入参数![](https://www.yuque.com/api/services/graph/generate_redirect/latex?t_%7Bthrehold%7D#card=math&code=t_%7Bthrehold%7D&id=uvRly)
![42f0b8ba9dfd5d5809d938b9b7916ff1.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503318309-bba19f9e-ba83-4e1c-93d9-8f006d48991e.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=89&id=u0e8c57fd&originHeight=111&originWidth=614&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8327&status=done&style=none&taskId=udb8ad1bb-92b5-4aee-a792-32d6e57f958&title=&width=491.2)
因此,去雾算法的任务就变成了估计全局背景光和透射率t(x)。
## 3.2 暗原色先验
暗原色先验(或暗通道先验),是说对于无雾图像中的一小片区域,其三维矩阵的最小值总是很低,换句话说,该区域 RGB 通道的最小值中的最小值总是很低。设图像的暗通道为![](https://www.yuque.com/api/services/graph/generate_redirect/latex?J%5E%7Bdark%7D(x)#card=math&code=J%5E%7Bdark%7D%28x%29&id=rdeXX)
![dafc51e965d3fffbdf34b77ee85da84a.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503340940-a9036188-6952-4435-ae31-b22f2d855a8e.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=62&id=uf3a1e5d2&originHeight=78&originWidth=632&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8021&status=done&style=none&taskId=u2a77fbce-c15e-4764-b70e-e2b11d94235&title=&width=505.6)
Ω(x)是 x 领域的一小片方形区域。暗原色先验是假设![](https://www.yuque.com/api/services/graph/generate_redirect/latex?J%5E%7Bdark%7D(x)#card=math&code=J%5E%7Bdark%7D%28x%29&id=Uk8cj) ≈ 0,但这对天空区域是不适用的。
## 3.3 估算透射率
利用暗原色先验假设,我们可以估算出一个粗略的透射率我们先对𝐼(𝑥) = 𝐽(𝑥)𝑡(𝑥) + 𝐴(1 − 𝑡(𝑥))两边除以 A
![cc094a6b92664ae25855af67116378eb.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503359896-9d134b84-eb07-461c-abbd-1aee9fdc9867.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=81&id=u7037e0a1&originHeight=101&originWidth=531&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=6181&status=done&style=none&taskId=u3416e439-2223-4862-910b-f0a9cba092e&title=&width=424.8)
求两边的暗通道:
![edbaa8ba0fd300fba2b2d1ac2dc8ffae.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503373018-d2412d6b-c59d-4754-9944-2e0b7635b9e5.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=94&id=u78d41321&originHeight=118&originWidth=1187&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=16581&status=done&style=none&taskId=u4f5e2daf-4e97-4cfa-8348-eb171378172&title=&width=949.6)
假设t(x)在小片区域内是不变的,并设其为t~(x):
![92f24397e5cb694d6865a056907c0c16.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503386683-ceb25bd1-68cd-4ee6-876f-1e0cfd5c5739.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=95&id=uc97a19d6&originHeight=119&originWidth=1240&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=14904&status=done&style=none&taskId=ua8e9d460-ac17-4166-9e33-26fa8579674&title=&width=992)
A在整个图像范围内是常数,由暗原色先验假设![c79836ce1eb71ae979def094f44199e0.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1711503408911-229d4c0a-b15f-4cf8-b7a2-3a013ab80769.png#averageHue=%23000000&clientId=ub1b89c37-938f-4&from=paste&height=76&id=u7fbe264b&originHeight=95&originWidth=449&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=6883&status=done&style=none&taskId=u753ceb82-929f-4f57-9bf6-fafc6dacf8f&title=&width=359.2),因此:
![9bbfb29567ddbe573217518faa31c167.PNG](http
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010439 大作业要求调研实现去雾算法,发现其中的问题,并对算法进行改进。 我首先实现了基于暗原色先验的去雾算法,并从运算速度和去雾效果方面进行了一定的改进。之后,我训练了 AOD 卷积网络来进行图像去雾,并对数据集图片做一定的处理,增加了网络的鲁棒性,去雾效果也很不错。暗原色先验的去雾算法使用 MATLAB 实现,使用 MATLAB 的 GUI 设计了用户界面;AOD 卷积网络使用 Python 实现,使用 pyqt 设计了用户界面。
资源推荐
资源详情
资源评论
收起资源包目录
100010439-基于Python实现数字图像处理(图像去雾).zip (77个子文件)
imagedehazing
简介.md 2KB
LICENSE 1KB
ground truth(Li et al., 2017).png 156KB
代码
AOD神经网络
Dehaze_save
epoch11.pth 25KB
testbench
river_result.png 301KB
test1.jpg 56KB
shan.jpg 24KB
tian.png 346KB
trees_result.jpg 196KB
buildings_result.jpg 107KB
trees.jpg 554KB
test1_result.jpg 19KB
toys_result.jpg 27KB
toys.jpg 140KB
img.bmp 898KB
buildings.jpg 97KB
test2_result.jpg 76KB
tian_result.png 391KB
river.png 356KB
road.jpg 5KB
shan_result.jpg 23KB
test2.jpg 106KB
woods_result.png 279KB
road_result.jpg 8KB
woods.png 239KB
code
utils.py 3KB
model.py 1018B
ui.spec 884B
dataloader.py 2KB
train.py 6KB
__pycache__
utils.cpython-35.pyc 4KB
model.cpython-35.pyc 1KB
model.cpython-36.pyc 1KB
test.cpython-36.pyc 1KB
ui.cpython-36.pyc 3KB
dataloader.cpython-36.pyc 2KB
dataloader.cpython-35.pyc 2KB
utils.cpython-36.pyc 3KB
ui.py 3KB
test.py 975B
暗原色先验
DarkChannelPrior
dehaze.m 1KB
guidFilter.m 2KB
main.m 435B
hist_equal.m 239B
getA_ave.m 741B
boxfilter.m 860B
testbench
test1.jpg 56KB
shan.jpg 24KB
tian.png 346KB
trees.jpg 554KB
toys.jpg 140KB
img.bmp 898KB
buildings.jpg 97KB
river.png 356KB
road.jpg 5KB
test2.jpg 106KB
woods.png 239KB
results
river_result.png 305KB
img_result.bmp 898KB
trees_result.jpg 166KB
buildings_result.jpg 91KB
test1_result.jpg 13KB
toys_result.jpg 30KB
test2_result.jpg 59KB
tian_result.png 382KB
shan_result.jpg 21KB
woods_result.png 312KB
road_result.jpg 7KB
getA.m 804B
mygui.m 6KB
报告.pdf 1.83MB
README.md 39KB
可执行程序
暗原色先验
dehaze.exe 10.77MB
splash.png 51KB
default_icon.ico 46KB
readme.txt 1KB
由于AOD神经网络可执行程序太大(780M),所以上传至清华网盘 打开.txt 105B
共 77 条
- 1
神仙别闹
- 粉丝: 2674
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页