当前位置: 首页 > news >正文

[C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强

【算法介绍】

提升夜间雾霾图像可见度的技术研究:引导APSF与梯度自适应卷积的应用

随着城市化的快速发展,雾霾现象日益严重,尤其是在夜间,雾霾对图像的可见度造成了极大的影响。因此,提升夜间雾霾图像的可见度成为了图像处理领域的研究热点。在ACM International Conference on Multimedia 2023(ACMMM2023)上,一篇题为“Enhancing Visibility in Nighttime Haze Images Using Guided APSF and Gradient Adaptive Convolution”的论文,为我们提供了一种全新的解决方案。

该论文提出了一种结合引导APSF(Adaptive Point Spread Function)和梯度自适应卷积的方法来增强夜间雾霾图像的可见度。引导APSF是一种能够模拟雾霾天气下光线散射现象的技术,它可以有效地估计和补偿图像中的雾霾效应。而梯度自适应卷积则能够根据图像的局部特征自适应地调整卷积核,从而更好地保留图像的细节和边缘信息。

通过结合这两种技术,该论文的方法能够在去除雾霾的同时,保留图像的细节和色彩信息,从而显著提高夜间雾霾图像的可见度。这一方法不仅在理论上具有创新性,而且在实验中也取得了显著的效果。实验结果表明,与传统的图像去雾方法相比,该方法在提升图像可见度、保留图像细节和色彩信息等方面都具有明显的优势。

总之,该论文的研究为我们提供了一种新的思路和方法来增强夜间雾霾图像的可见度。这一方法不仅具有重要的理论价值,而且在实际应用中也有着广阔的前景。随着技术的不断进步和应用场景的不断拓展,相信这一方法将在未来的图像处理领域中发挥更加重要的作用。

【框架地址】 

https://github.com/jinyeying/nighttime_dehaze

【效果展示】

【实现部分代码】 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;namespace FIRC
{public partial class Form1 : Form{Mat src = null;NighttimeNet detector = new NighttimeNet();public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";openFileDialog.RestoreDirectory = true;openFileDialog.Multiselect = false;if (openFileDialog.ShowDialog() == DialogResult.OK){src = Cv2.ImRead(openFileDialog.FileName);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);}}private void button2_Click(object sender, EventArgs e){if(pictureBox1.Image==null){return;}var result = detector.Inference(src);pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(result);}private void Form1_Load(object sender, EventArgs e){detector.LoadWeights(Application.StartupPath+ "\\weights\\nighttime_dehaze_realnight_1x3x512x512.onnx", 512,512);}private void button3_Click(object sender, EventArgs e){VideoCapture capture = new VideoCapture(0);if (!capture.IsOpened()){Console.WriteLine("video not open!");return;}Mat frame = new Mat();var sw = new Stopwatch();int fps = 0;while (true){capture.Read(frame);if (frame.Empty()){Console.WriteLine("data is empty!");break;}sw.Start();var result = detector.Inference(frame);sw.Stop();fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds);sw.Reset();Cv2.PutText(result, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3);//显示结果Cv2.ImShow("Result", result);int key = Cv2.WaitKey(10);if (key == 27)break;}capture.Release();}}
}

【视频演示】

https://www.bilibili.com/video/BV1B6421M78e/?vd_source=989ae2b903ea1b5acebbe2c4c4a635ee

【源码下载】

https://download.csdn.net/download/FL1623863129/88860837

【测试环境】

vs2019,netframework4.7.2,opencvsharp4.8.0,onnxruntime1.16

http://www.lryc.cn/news/304209.html

相关文章:

  • 【Django】Django自定义后台表单——对一个关联外键对象同时添加多个内容
  • 迷茫?没有努力的方向?没有耐心去坚持?精选书籍推荐2
  • MySQL报错:sql_mode=only_full_group_by解决方法
  • SQL表连接方式
  • 5 原型模式 Prototype
  • springboot java 项目连接es
  • MySQL学习笔记3: MySQL数据库基础
  • GB/T 17640-2023 长丝机织土工布检测
  • MedicalGPT 训练医疗大模型,实现了包括增量预训练、有监督微调、RLHF(奖励建模、强化学习训练)和DPO(直接偏好优化)
  • UE4 C++联网RPC教程笔记(一)(第1~4集)
  • 备战蓝桥杯 Day11(滚动数组优化+完全背包)
  • Java SE 入门到精通—4.抽象类与接口【Java】
  • Python 开发转 Java 简易路线 - 更新中
  • Python编程语言学习
  • Cartographer框架简述
  • 适用于 Linux、Windows 和 macOS 的免费 ONLYOFFICE 桌面应用程序
  • C++面向对象程序设计-北京大学-郭炜【课程笔记(四)】
  • 前端构建效率优化之路
  • react实现拖拽的插件
  • 解决Uncaught SyntaxError: Cannot use import statement outside a module(at XXX)报错
  • PHP如何利用post与get方式传值接收数据
  • 在Mac上搭建MongoDB环境
  • 第三十九天| 62.不同路径、63. 不同路径 II
  • 提高代码质量的 10 条编码原则
  • SHERlocked93 的 2017 年终总结
  • 【FreeRTOS基础入门】任务通知
  • python opencv比较图片相似度
  • 校园兼职|大学生校园兼职小程序|基于微信小程序的大学生校园兼职系统设计与实现(源码+数据库+文档)
  • linux系统离线安装docker服务教程
  • 【青龙】快速搭建青龙面板,部署属于你自己的应用!