news 2026/2/6 8:54:04

视频实时去雾:DCP+双边滤波,700毫秒一帧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
视频实时去雾:DCP+双边滤波,700毫秒一帧

在虚拟机上,大约700毫秒一帧,性能无法忍受。

import cv2 import numpy as np import time def dehaze(image, w=1, t0=0.4, p=0.8): # 估计全局大气光照 dark_channel = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) dark_channel = cv2.min(dark_channel, cv2.blur(dark_channel, (15, 15))) hist = cv2.calcHist([dark_channel], [0], None, [256], [0, 256]) hist_cum = hist.cumsum() percentile = (1 - w) * hist_cum[-1] atmospheric_light = 255 - np.argmax(hist_cum > percentile) # 估计透射率 normalized_image = np.uint8(image / atmospheric_light) # 将数据类型转换为8位无符号整数 dark_channel = cv2.min(cv2.cvtColor(normalized_image, cv2.COLOR_BGR2GRAY), cv2.blur(dark_channel, (15, 15))) transmission = 1 - t0 * dark_channel # 双边滤波 guide = cv2.GaussianBlur(image, (0, 0), p) dehazed_image = np.zeros_like(image) for i in range(3): dehazed_image[:, :, i] = (image[:, :, i] - atmospheric_light) / cv2.max(transmission, 0.1) + atmospheric_light dehazed_image = guide * transmission[:, :, np.newaxis] + dehazed_image * (1 - transmission[:, :, np.newaxis]) return dehazed_image.astype(np.uint8) def real_time_dehazing(input_file, output_file): cap = cv2.VideoCapture(input_file) fps = int(cap.get(cv2.CAP_PROP_FPS)) width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 初始化视频写入器 merge = True write_w= width if (merge): write_w += width fourcc = cv2.VideoWriter_fourcc(*'mp4v') out = cv2.VideoWriter(output_file, fourcc, fps, (write_w, height)) counter= 0 cost = 0 while True: ret, frame = cap.read() if not ret: break counter += 1 # 超快速去雾 start_time = time.time() result = dehaze(frame) time_ms = (time.time() - start_time)*1000 cost += time_ms print(counter, int(time_ms)) # 显示 cv2.putText(result, f"{time_ms:.1f}ms", (30, 100), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) if (merge): result = cv2.hconcat([frame, result]); out.write(result) print(cost, '/', counter, '=', (cost/counter)) out.release() cap.release() input_file = '../test-files/fog5-1920x1080.mp4' output_file = 'defog.mp4' real_time_dehazing(input_file, output_file)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 21:28:57

前端技术栈,零基础入门到精通,收藏这篇就够了

文章目录 0)前端 1、什么是前端?2、为什么需要前端? 前端的发展简史: 3、前端开发的类型 Web前端开发:客户端(APP)开发: 4、前端与后端的交互 Ajax:Socket: …

作者头像 李华
网站建设 2026/2/3 7:51:02

从基础到领域:一文读懂网络安全涵盖的方方面面与职业方向

提及网络安全,很多人都是既熟悉又陌生,所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 一、什么是网络安全? 网络安全是指保护网络系统、硬件、软件以及其中的数据免受…

作者头像 李华
网站建设 2026/2/5 14:43:21

掌握Rust并发数据结构(从零开始构建线程安全的多线程应用)

在现代软件开发中,Rust并发数据结构是构建高性能、安全应用程序的核心。Rust以其“无畏并发”(fearless concurrency)著称,通过其独特的所有权系统和类型系统,在编译期就阻止了数据竞争(data race&#xff…

作者头像 李华
网站建设 2026/2/3 21:06:23

AI大模型调优工程:突破显存墙与灾难性遗忘的双重挑战

面对万亿参数模型,传统全参数微调已成为资源黑洞。本文提出动态混合稀疏微调框架(DySparse),通过结构感知参数选择、梯度稀疏化压缩、神经路径蒸馏三大核心技术,在Llama3-405B模型实现调显存占用下降89%(8x…

作者头像 李华
网站建设 2026/2/6 19:33:24

【收藏必备】大模型RAG系统架构全解:知识库三大核心层详解

本文系统解析了RAG知识库的三层架构:知识存储层(结构化、向量库和对象存储)、知识处理层(文件解析、分块策略和向量化)以及知识管理与检索层(知识打标和混合检索)。文章强调,只有深入…

作者头像 李华
网站建设 2026/2/6 12:19:14

Web编辑器自动处理Word图片转存CDN组件

各位道友,且听我这个江西老表用带着辣椒味的普通话,讲讲如何在99元预算下,给CMS系统加上Word一键粘贴功能,顺便还能防黑客、防白嫖、防导师催稿! 一、技术方案(白嫖防身版) 前端篇(…

作者头像 李华