基于FPGA的图像去雾算法的实现
- 2019 年 10 月 29 日
- 筆記
基于FPGA的图像去雾算法的实现
本文在《基于暗通道先验条件图像去雾算法》的最后段matlab的图像去雾算法的基础上对matlab代码进行转化完成verilog的FPGA图像去雾算法。
Matlab去雾算法的结果展示:
图1 实验结果1
图2 实验结果2
图3 实验结果3
1 FPGA实现先验条件图像去雾算法
如图4所示,将整个图像去雾算法分为三个模块以流水线的方式完成FPGA的图像去雾算法:
1,rgb_dark模块完成每个像素点r,g,b中最小值的输出暗通道图像;
2,Transmittance模块完成透射率图像和全球大气光强度的输出;
3,Defog模块完成最终的去雾图像的输出。
图4 FPGA实现图像去雾框图
2 仿真
如图5所示,仿真图像由$fopen打开,由$fwrite写出。
图5 仿真模型
仿真过程中每幅图像需要两帧的图像来处理,三张图片用时6帧完成输出。
图6 仿真波形
3 实验结果及分析
实验原图1
暗通道图像
透射率图像
去雾图像
实验原图2
暗通道图像
透射率图像
去雾图像
实验原图3
暗通道图像
透射率图像
去雾图像
结果分析:ω(0<ω≤1)为0时图像完全不去雾,为1时图像完全去雾但是图像会失真,视觉效果很差。从实验结果来看,每幅图像都有一些去雾效果,但是没有达到人类视觉的最佳效果,这里我们可以再加入引导滤波等算法使图像还原更逼真。
之则认为数据有误或者数据可能存在亚稳态。