news 2026/6/15 20:09:25

视频实时去雾: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/6/10 16:41:03

【AI×实时Linux:极速实战宝典】文件系统 - 优化 Ext4 日志模式与 Tmpfs(内存盘)应用,消除 IO 操作对推理的阻塞

简介在人工智能和实时系统领域,高效的文件系统操作对于确保系统的实时性和稳定性至关重要。特别是在涉及实时推理任务的场景中,文件系统的 I/O 操作可能会对关键推理线程产生阻塞,从而影响系统的响应速度和性能。本文将介绍如何通过优化 Ext4…

作者头像 李华
网站建设 2026/6/13 8:15:51

可视化测试:截图与录屏工具的进阶使用‌

在软件测试领域,可视化测试通过捕捉用户界面(UI)的视觉元素来验证功能与设计一致性。2025年,随着AI和自动化技术的普及,截图与录屏工具已从简单的记录设备演变为智能诊断助手。本文聚焦进阶使用策略,针对测试工程师、QA专家等从业…

作者头像 李华
网站建设 2026/6/15 18:13:50

力扣刷题:长按键入

题目: 你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按&…

作者头像 李华
网站建设 2026/6/13 6:12:35

选择优质LED照明需考量光源、光效及设计方案

于当下这么一个情形,此处LED照明技术正快速地普及以及发展着,挑选具备高品质的照明产品成为了增进商业空间效能跟提升居家生活品质的关键所在。市面上存在着数量众多的照明品牌,那些产品的特性是各不相同的,当消费者以及采购者在做…

作者头像 李华
网站建设 2026/6/9 22:22:55

python基于Vue的企业员工奖惩工资考勤管理系统的设计与实现_e45z9_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue的企业员工奖惩工资考勤…

作者头像 李华