基于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为0时图像完全不去雾,为1时图像完全去雾但是图像会失真,视觉效果很差。从实验结果来看,每幅图像都有一些去雾效果,但是没有达到人类视觉的最佳效果,这里我们可以再加入引导滤波等算法使图像还原更逼真。
之则认为数据有误或者数据可能存在亚稳态。
往期推荐
【Vivado 学习一】 时钟约束
【Vivado 学习二】 IO延时约束
【Vivado 学习三】 时钟网络分析
【Vivado 学习四】 跨时钟域路径分析
【Vivado 学习五】 时序分析
更多精彩推荐,请关注我们
![877b00a3d8018bc94a6f63c9e43a47f5.png](https://i-blog.csdnimg.cn/blog_migrate/3576e4384a4a4c0723d712f4f135cc5b.jpeg)