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

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果

目录

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果

一、简单介绍

二、简单指定视频某片段快放效果实现原理

三、简单指定视频某片段快放效果案例实现简单步骤

四、注意事项


一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

这里使用 Python  基于 OpenCV 进行视觉图像处理,......

二、简单指定视频某片段快放效果实现原理

视频素描效果是一种图像处理技术,它通过在视频中模拟铅笔素描的效果,使得视频看起来像是由铅笔勾勒出的线条和轮廓组成。这种效果常常用于艺术创作、视频编辑等领域,能够给视频带来独特的艺术感和视觉效果。

在视频素描效果中,通常会保留视频的主要轮廓和边缘线条,去除过多的细节和色彩,从而营造出一种简洁、抽象的画面风格。这种效果常常被用于制作动画、漫画、艺术短片等类型的视频,也可以作为一种艺术表现手段来增强视频的观赏性和艺术性。

当实现视频素描效果时,我们需要使用边缘检测算法来突出视频中的轮廓,并将其转换为黑白画面。以下是实现该效果的基本方法:

  1. 读取视频:首先,我们使用OpenCV库读取输入的视频文件。

  2. 处理每一帧:对于视频中的每一帧,我们都会应用素描画效果。我们使用边缘检测算法(如Canny边缘检测)来检测图像中的边缘,然后反转边缘图像,使其成为黑色背景上的白色轮廓。

  3. 保存视频:最后,我们将处理后的帧写入输出视频文件中,以创建包含素描效果的新视频。

三、简单指定视频某片段快放效果案例实现简单步骤

1、编写代码

2、运行效果

3、具体代码

"""
简单视频素描效果1、读取视频:首先,我们使用OpenCV库读取输入的视频文件。2、处理每一帧:对于视频中的每一帧,我们都会应用素描画效果。我们使用边缘检测算法(如Canny边缘检测)来检测图像中的边缘,然后反转边缘图像,使其成为黑色背景上的白色轮廓。3、保存视频:最后,我们将处理后的帧写入输出视频文件中,以创建包含素描效果的新视频。
"""import cv2def sketch(frame, canny_threshold=150):"""简单素描效果:param frame:帧,图:param canny_threshold:边缘因子,越大,细节越少:return:"""# 将图像转换为灰度图gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 使用高斯模糊去除噪音blurred = cv2.GaussianBlur(gray, (5, 5), 0)# 检测边缘edges = cv2.Canny(blurred, canny_threshold, canny_threshold * 3)# 反色edges = 255 - edgesreturn edgesdef sketch_video(input_video_path, output_video_path, canny_threshold=150):"""简单视频素描效果:param input_video_path::param output_video_path::param canny_threshold: 边缘因子,越大,细节越少:return:"""# 校验视频路径if not isinstance(input_video_path, str) or not isinstance(output_video_path, str):raise ValueError("Input and output video paths must be strings.")# 读取原始视频cap = cv2.VideoCapture(input_video_path)if not cap.isOpened():raise ValueError("Error: Unable to open input video.")# 获取视频信息fps = cap.get(cv2.CAP_PROP_FPS)width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 校验视频尺寸if width <= 0 or height <= 0:raise ValueError("Error: Invalid video dimensions.")# 定义视频编码器fourcc = cv2.VideoWriter_fourcc(*'mp4v')# 创建 VideoWriter 对象out = cv2.VideoWriter(output_video_path, fourcc, fps, (width, height), isColor=False)# 处理每一帧并保存视频while cap.isOpened():ret, frame = cap.read()if not ret:break# 应用素描画效果sketch_frame = sketch(frame, canny_threshold)# 写入视频帧out.write(sketch_frame)# 释放资源cap.release()out.release()cv2.destroyAllWindows()def main():# 调用函数并指定输入和输出视频文件路径input_video_path = "Videos/CatRun.mp4"output_video_path = "Videos/VideoSketchEffect.mp4"sketch_video(input_video_path, output_video_path, canny_threshold=7)if __name__ == "__main__":main()

四、注意事项

  • 参数校验:对输入的视频路径进行检查,确保路径有效,以及视频文件能够成功读取。

  • 处理单帧:对每一帧应用素描效果时,我们需要确保算法的效率,以避免处理时间过长导致视频播放不流畅。

  • 视频编解码器:选择合适的视频编解码器以确保输出视频文件的兼容性和质量。

  • 图像处理参数:调整边缘检测算法的参数,如Canny边缘检测的阈值,以获得最佳的素描效果。

相关文章:

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之八 简单视频素描效果 一、简单介绍 二、简单指定视频某片段快放效果实现原理 三、简单指定视频某…...

数据结构——线性表(链式存储结构)

语言&#xff1a;C语言软件&#xff1a;Visual Studio 2022笔记书籍&#xff1a;数据结构——用C语言描述如有错误&#xff0c;感谢指正。若有侵权请联系博主 一、线性表的逻辑结构 线性表是n个类型相同的数据元素的有限序列&#xff0c;对n>0&#xff0c;除第一元素无直接…...

面试算法-169-二叉树的中序遍历

题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 解 class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> resul…...

计算机视觉——引导APSF和梯度自适应卷积增强夜间雾霾图像的可见性算法与模型部署(C++/python)

摘要 在夜间雾霾场景中&#xff0c;可见性经常受到低光照、强烈光晕、光散射以及多色光源等多种因素的影响而降低。现有的夜间除雾方法常常难以处理光晕或低光照条件&#xff0c;导致视觉效果过暗或光晕效应无法被有效抑制。本文通过抑制光晕和增强低光区域来提升单张夜间雾霾…...

git bash用法-批量修改文件名

在win系统上安装git bash可以使用命令行模式操作&#xff0c;比较方便 1.原始文件名 2.代码 for file in *3utr*; do mv "$file" "$(echo "$file" | sed s/3utr/5utr/)"; done3.修改后的文件名...

分布式社交媒体:探索Web3对社交媒体的改变

在数字化时代&#xff0c;社交媒体已成为人们日常生活中不可或缺的一部分。然而&#xff0c;传统的社交媒体平台往往由中心化的机构或公司掌控&#xff0c;用户的数据和内容受到限制&#xff0c;引发了一系列的隐私和安全问题。随着区块链技术的发展&#xff0c;分布式社交媒体…...

vue的监视属性

目录 1. 场景引入2. watch3. 深度监视4. 监视属性简写5. 小结 1. 场景引入 在实际开发中&#xff0c;有时开发者需要根据某个属性的变化&#xff0c;做出相应的决策&#xff0c;因此Vue为开发者提供了watch.这一监视属性&#xff0c;用于实现此类需求。比如下面这个场景&…...

外包干了15天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…...

防止邮箱发信泄露服务器IP教程

使用QQ邮箱,网易邮箱,189邮箱,新浪邮箱,139邮箱可能会泄露自己的服务器IP。 泄露原理&#xff1a;服务器通过请求登录SMTP邮箱服务器接口&#xff0c;对指定的收件人发送信息。 建议大家使用商业版的邮箱&#xff0c;比如阿里云邮箱发信等 防止邮件发信漏源主要关注的是确保邮件…...

鸿蒙HarmonyOS开发实战:【分布式音乐播放】

介绍 本示例使用fileIo获取指定音频文件&#xff0c;并通过AudioPlayer完成了音乐的播放完成了基本的音乐播放、暂停、上一曲、下一曲功能&#xff1b;并使用DeviceManager完成了分布式设备列表的显示和分布式能力完成了音乐播放状态的跨设备分享。 本示例用到了与用户进行交…...

【iOS ARKit】App 中嵌入 AR Quick Look

AR Quick Look 功能强大&#xff0c;但在应用中嵌入并使用它实现 AR体验却非常简单&#xff0c;如其他所有QuickLook使用一样&#xff0c;简单到只需要提供一个文件名就可以达到目标。 AR Quick Look 支持.usdz 和.reality 两种格式文件&#xff0c;如果在 Xcode 工程中引入了 …...

【Web开发】jquery图片放大镜效果制作变焦镜头图片放大

jquery图片放大镜效果制作变焦镜头图片放大实现 整体步骤流程&#xff1a; 1. 前端html实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"…...

RTC实时显示时间(备份电源 备份域的作用)

RTC初始化配置 系统复位后&#xff0c;可通过 PWR 电源控制寄存器 (PWR_CR) 的 DBP 位保护 RTC 寄存器以防止 非正常的写访问。必须将 DBP 位置 1 才能使能 RTC 寄存器的写访问。 上电复位后&#xff0c;所有 RTC 寄存器均受到写保护。通过向写保护寄存器 (RTC_WPR) 写入一个…...

【YOLOv9】完胜V8的SOTA模型Yolov9(论文阅读笔记)

官方论文地址: 论文地址点击即可跳转 官方代码地址: GitCode - 开发者的代码家园 官方代码地址点击即可跳转 1 总述 当输入数据经过各层的特征提取和变换的时候,都会丢失一定的信息。针对这一问题:...

学生管理系统详细需求文档

文章目录 1. 引言1.1 目的1.2 范围 2. 功能性需求2.1 用户认证2.1.1 登录 2.2 学生信息管理2.2.1 学生档案2.2.2 学籍管理 2.3 课程管理2.3.1 课程信息2.3.2 选课系统 2.4 成绩管理2.4.1 成绩录入2.4.2 成绩查询 2.5 课程进度和通知2.5.1 课程日历2.5.2 通知和提醒 2.6 学生活动…...

产品经理功法修炼(4)之产品管理

点击下载《产品经理功法修炼(4)之产品管理》 产品经理功法修炼(1)之自我管理 产品经理功法修炼(2)之专业技能 产品经理功法修炼(3)之产品设计 产品经理功法修炼(4)之产品管理 产品经理功法修炼(5)之团队管理 1. 前言 产品经理的能力修炼并非局限于某一技能的…...

【LeetCode热题100】【二叉树】二叉树展开为链表

题目链接&#xff1a;114. 二叉树展开为链表 - 力扣&#xff08;LeetCode&#xff09; 就先序遍历的顺序&#xff0c;其实就是简单的深度遍历顺序&#xff0c;装进一个容器里面再前一个后一个串连起来&#xff0c;注意容器的size是个无符号数&#xff0c;无符号数和有符号运行…...

云原生__K8S

createrepo --update /var/localrepo/# 禁用 firewall 和 swap [rootmaster ~]# sed /swap/d -i /etc/fstab [rootmaster ~]# swapoff -a [rootmaster ~]# dnf remove -y firewalld-*[rootmaster ~]# vim /etc/hosts 192.168.1.30 harbor 192.168.1.50 master 192.168.1.…...

nginx配置证书和私钥进行SSL通信验证

文章目录 一、背景1.1 秘钥和证书是两个东西吗&#xff1f;1.2 介绍下nginx配置文件中参数ssl_certificate和ssl_certificate_key1.3介绍下nginx支持的证书类型1.4 目前nginx支持哪种证书格式&#xff1f;1.5 nginx修改配置文件目前方式也会有所不同1.6 介绍下不通格式的证书哪…...

【面试题】微博、百度等大厂的排行榜如何实现?

背景 现如今每个互联网平台都会提供一个排行版的功能&#xff0c;供人们预览最新最有热度的一些消息&#xff0c;比如百度&#xff1a; 再比如微博&#xff1a; 我们要知道&#xff0c;这些互联网平台每天产生的数据是非常大&#xff0c;如果我们使用MySQL的话&#xff0c;db实…...

Mermaid:文本驱动的可视化引擎深度指南

Mermaid&#xff1a;文本驱动的可视化引擎深度指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器&#xff0c;支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者。 …...

Repomix用户体验:CLI界面设计与交互的终极指南

Repomix用户体验&#xff1a;CLI界面设计与交互的终极指南 【免费下载链接】repomix &#x1f4e6; Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase t…...

NSudo:突破Windows权限壁垒的系统管理利器

NSudo&#xff1a;突破Windows权限壁垒的系统管理利器 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo 一、核心价…...

别再犯这些错误!英文邮件写作中的常见误区与正确写法

英文邮件写作进阶指南&#xff1a;避开9个致命错误&#xff0c;展现专业沟通力 在跨国商务沟通中&#xff0c;一封得体的英文邮件就像精心设计的数字名片。我曾见证过一位工程师因为邮件中一个称呼错误&#xff0c;导致价值200万美元的合同谈判陷入僵局&#xff1b;也见过实习生…...

OpenClaw环境隔离方案:GLM-4.7-Flash多项目独立配置

OpenClaw环境隔离方案&#xff1a;GLM-4.7-Flash多项目独立配置 1. 为什么需要环境隔离&#xff1f; 去年夏天&#xff0c;我同时接手了两个截然不同的自动化项目&#xff1a;一个是帮朋友处理电商数据整理的私人需求&#xff0c;另一个是公司内部的知识库维护工作。当我兴冲…...

工厂里EtherCAT从站模块坏了别慌!手把手教你用Startup list和CoE-online快速换新(附配置顺序避坑指南)

工厂EtherCAT从站模块更换实战指南&#xff1a;Startup list与CoE-online的高效应用 当生产线上的EtherCAT从站模块突然罢工&#xff0c;设备维护工程师往往面临两难选择&#xff1a;是临时在线修改参数快速恢复生产&#xff0c;还是彻底解决"即插即用"的配置难题&am…...

终极指南:如何让2007年旧Mac运行最新macOS系统

终极指南&#xff1a;如何让2007年旧Mac运行最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为那台陪伴多年的老Mac无法升级最新系统而烦恼吗&#xff1…...

nli-distilroberta-base在工业质检文档中的应用:SOP操作步骤与现场记录逻辑一致性核查

nli-distilroberta-base在工业质检文档中的应用&#xff1a;SOP操作步骤与现场记录逻辑一致性核查 1. 项目背景与价值 在工业制造领域&#xff0c;标准作业程序(SOP)与现场操作记录的一致性核查是质量管理的核心环节。传统人工核查方式存在效率低、主观性强、覆盖不全等问题。…...

NaViL-9B多模态模型5分钟快速部署:图文问答零基础入门教程

NaViL-9B多模态模型5分钟快速部署&#xff1a;图文问答零基础入门教程 1. 认识NaViL-9B多模态模型 NaViL-9B是上海人工智能实验室推出的原生多模态大语言模型&#xff0c;它不仅能像传统语言模型一样处理纯文本问答&#xff0c;还具备强大的图片理解能力。这意味着你可以上传…...

模拟IC工程师必备:用Cadence Virtuoso仿真电流镜的7个关键步骤

模拟IC工程师必备&#xff1a;用Cadence Virtuoso仿真电流镜的7个关键步骤 在模拟集成电路设计中&#xff0c;电流镜堪称"细胞级"的基础模块&#xff0c;其性能直接影响整个系统的精度与稳定性。对于刚接触Cadence Virtuoso的工程师而言&#xff0c;如何高效完成从电…...