news 2026/9/3 3:46:12

视频实时去雾: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/9/2 23:52:54

重新定义网络安全:解读2025年必须重视的三大底层逻辑与核心价值

随着互联网的普及和数字化进程的加速,网络安全已经成为我们生活中不可或缺的一部分。然而,很多人对于网络安全的概念仍然模糊不清。 那么,什么是网络安全?它究竟有多重要呢? 一、网络安全的定义 网络安全是指保护网…

作者头像 李华
网站建设 2026/9/2 19:49:49

游学考察:知行合一的沉浸式成长与交流模式

游学考察是一种学游相融、知行合一的特色活动,核心是将理论学习与实地实践深度结合,让参与者在行走中拓视野、长见识,在体验中悟认知、增本领,兼具“游”的体验感与“学”的专业性,是区别于单纯旅游和课堂学习的沉浸式…

作者头像 李华
网站建设 2026/9/2 22:14:44

【AI×实时Linux:极速实战宝典】C++推理 - 基于 LibTorch(PyTorch C++)构建强实时的深度学习推理应用

简介在人工智能和实时系统领域,深度学习模型的推理性能对于系统的实时性和可靠性至关重要。Python 作为深度学习的主要开发语言,虽然提供了丰富的库和工具,但在实时性要求极高的场景中,其性能和内存管理能力可能受到限制。LibTorc…

作者头像 李华
网站建设 2026/9/2 22:15:07

【AI×实时Linux:极速实战宝典】零拷贝 - 利用 CUDA Unified Memory 与 Zero-Copy 技术消除 CPU-GPU 数据传输耗时

简介在高性能计算和人工智能领域,CPU 和 GPU 之间的数据传输一直是性能瓶颈之一。传统的数据传输方式需要通过 PCIe 总线将数据从 CPU 内存复制到 GPU 内存,这不仅增加了延迟,还降低了系统的整体性能。为了克服这一问题,NVIDIA 提…

作者头像 李华
网站建设 2026/9/2 22:06:42

收藏!后端转大模型工程化实战指南:从入门到落地全路径

随着DeepSeek、通义千问等明星大模型相继破圈,AI领域正迎来新一轮产业爆发浪潮,其中大模型工程化开发已然成为人才市场的“香饽饽”,相关岗位薪资与需求双双呈指数级攀升。不少深耕后端领域的工程师,敏锐捕捉到这一行业风口&#…

作者头像 李华