- 目录 抖音时光倒流原理实现视频整体倒放实现视频部分倒放 抖音时光倒流原理 抖音的时光倒流原理,应该来说最好理解,也就是将视频倒放。如果你是掌握PR或者AE的用户,那么视频倒放肯定手到擒来。但是,今天我们要做的是使用OpenCV程序实现视频的倒放效果(当然PR与AE底层实现的效果就是这段代码原理)。 下面,我们来一步步掌握视频的整体倒放,以及部分倒放的操... 目录 抖音时光倒流原理实现视频整体倒放实现视频部分倒放 抖音时光倒流原理 抖音的时光倒流原理,应该来说最好理解,也就是将视频倒放。如果你是掌握PR或者AE的用户,那么视频倒放肯定手到擒来。但是,今天我们要做的是使用OpenCV程序实现视频的倒放效果(当然PR与AE底层实现的效果就是这段代码原理)。 下面,我们来一步步掌握视频的整体倒放,以及部分倒放的操...
- 在Python的七十多个内置函数中,max()和min()是比较常用的两个,用来查找一组数据中的最大值和最小值。这两个函数看似简单,实则暗藏了很多意想不到的功能,尤其是key参数,更为这两个函数增加了类似map()函数的功能。如果应用在代码中,必定产生鬼斧神工、匪夷所思的感觉,令人叹为观止! 1. 典型应用场景 这是max()和min()函数最常见的应用场景:从多个... 在Python的七十多个内置函数中,max()和min()是比较常用的两个,用来查找一组数据中的最大值和最小值。这两个函数看似简单,实则暗藏了很多意想不到的功能,尤其是key参数,更为这两个函数增加了类似map()函数的功能。如果应用在代码中,必定产生鬼斧神工、匪夷所思的感觉,令人叹为观止! 1. 典型应用场景 这是max()和min()函数最常见的应用场景:从多个...
- 目录 前言数字水印的处理过程代码实现嵌入与提取数字水印 前言 在前面博文讲解位平面分解的时候,我们就提到过可以通过位平面分解的方式给图像添加水印。而数值水印是图片版权用到最多的加密方式。 通过在最低有效位的位平面分解图中隐藏二值图像信息,具有极高的隐蔽性。所以,友情提示各位程序员,不要以为网上的图像可以随便用,现在的加密方式真是让你防不胜防。就算你知道... 目录 前言数字水印的处理过程代码实现嵌入与提取数字水印 前言 在前面博文讲解位平面分解的时候,我们就提到过可以通过位平面分解的方式给图像添加水印。而数值水印是图片版权用到最多的加密方式。 通过在最低有效位的位平面分解图中隐藏二值图像信息,具有极高的隐蔽性。所以,友情提示各位程序员,不要以为网上的图像可以随便用,现在的加密方式真是让你防不胜防。就算你知道...
- 目录 前言MD5SHA1 前言 hashlib库定义了一个API来访问不同的密码散列算法。其底层由OpenSSL提供,所以OpenSSL库提供的所有算法都可以用,包括: MD5SHA1SHA224SHA256SHA384SHA512 当然,这上面列举的只是其支持的一部分。真正全部支持的种类读者可以用过下面代码打印出来,示例如下: import h... 目录 前言MD5SHA1 前言 hashlib库定义了一个API来访问不同的密码散列算法。其底层由OpenSSL提供,所以OpenSSL库提供的所有算法都可以用,包括: MD5SHA1SHA224SHA256SHA384SHA512 当然,这上面列举的只是其支持的一部分。真正全部支持的种类读者可以用过下面代码打印出来,示例如下: import h...
- 文章目录 1. 递归概述2. 线性递归3. 尾递归4. 单向递归5. 深度优先与广度优先 1. 递归概述 递归( recursion)是一种编程技巧,某些情况下,甚至是无可替代的技巧。递归可以大幅简化代码,看起来非常简洁,但递归设计却非常抽象,不容易掌握。通常,我们都是自上而下的思考问题, 递归则是自下而上的解决问题——这就是递归看起来不够直观的原因。那... 文章目录 1. 递归概述2. 线性递归3. 尾递归4. 单向递归5. 深度优先与广度优先 1. 递归概述 递归( recursion)是一种编程技巧,某些情况下,甚至是无可替代的技巧。递归可以大幅简化代码,看起来非常简洁,但递归设计却非常抽象,不容易掌握。通常,我们都是自上而下的思考问题, 递归则是自下而上的解决问题——这就是递归看起来不够直观的原因。那...
- 目录 前言获取凸包角点凸缺陷 前言 逼近多边形是某个图像轮廓的高度近似,而凸包的提出是为了简化逼近多边形的。其实,凸包跟逼近多边形很像,只不过它是物体最外层的“凸”多边形。 简单的概括,凸包是指完全包含原有轮廓,并且仅由轮廓上的点所构成的多边形。凸包的特点是每一处都是凸的,即在凸包内连接任意两点的直线都在凸包的内部,并且任意连续3个点的内角小于180度... 目录 前言获取凸包角点凸缺陷 前言 逼近多边形是某个图像轮廓的高度近似,而凸包的提出是为了简化逼近多边形的。其实,凸包跟逼近多边形很像,只不过它是物体最外层的“凸”多边形。 简单的概括,凸包是指完全包含原有轮廓,并且仅由轮廓上的点所构成的多边形。凸包的特点是每一处都是凸的,即在凸包内连接任意两点的直线都在凸包的内部,并且任意连续3个点的内角小于180度...
- 目录 前言初始化Counter遍历Counterelements()most_common 算数操作 前言 Counter是一个容器,可以跟踪等效值增加的次数。这个类可以用来实现其他语言中常用包或多集合数据结构实现的算法。 本篇,将详细介绍容器Counter的使用方式。 初始化Counter Counter支持3种形式的初始化,比如提供一个数组... 目录 前言初始化Counter遍历Counterelements()most_common 算数操作 前言 Counter是一个容器,可以跟踪等效值增加的次数。这个类可以用来实现其他语言中常用包或多集合数据结构实现的算法。 本篇,将详细介绍容器Counter的使用方式。 初始化Counter Counter支持3种形式的初始化,比如提供一个数组...
- 目录 前言copyfile()copy()与copy2()copymode()与copystat()复制整个文件夹参数copy_function参数ignore 删除整个文件夹移动文件夹或文件查找文件归档压缩文件解压缩 文件系统空间 前言 什么算是高层的文件操作呢? 普通的文件操作,我们一般只涉及创建文件,文件夹以及写入文件等等。假如我现在需要... 目录 前言copyfile()copy()与copy2()copymode()与copystat()复制整个文件夹参数copy_function参数ignore 删除整个文件夹移动文件夹或文件查找文件归档压缩文件解压缩 文件系统空间 前言 什么算是高层的文件操作呢? 普通的文件操作,我们一般只涉及创建文件,文件夹以及写入文件等等。假如我现在需要...
- 目录 什么是重映射copy像素点copy整个图像绕X轴翻转绕Y轴翻转绕XY轴翻转压缩一半 什么是重映射 把一副图像内的像素点放置到另一幅图像内的指定位置,这个过程我们称为重映射。简单点理解,也就是copy一个图像到另一个图像中。 在OpenCV中,它给我们提供了cv2.remap()函数作为重映射,其定义如下: def remap(src, map1... 目录 什么是重映射copy像素点copy整个图像绕X轴翻转绕Y轴翻转绕XY轴翻转压缩一半 什么是重映射 把一副图像内的像素点放置到另一幅图像内的指定位置,这个过程我们称为重映射。简单点理解,也就是copy一个图像到另一个图像中。 在OpenCV中,它给我们提供了cv2.remap()函数作为重映射,其定义如下: def remap(src, map1...
- 作为程序员,从第一次接触编程开始,就知道了文件的两大类别:文本文件和二进制文件。但是,如何定义和判别这两类文件,在我的知识体系里,却一直是模糊的。直觉上,用文本方式读写的文件一定是文本文件,用二进制方式读写的文件一定是二进制文件,然而,用 notepad++ 照样可以打开甚至编辑一个 .jpg 文件或者一个 .xls 文件。 事实上,不管是文本文件还是二进制文件,在物... 作为程序员,从第一次接触编程开始,就知道了文件的两大类别:文本文件和二进制文件。但是,如何定义和判别这两类文件,在我的知识体系里,却一直是模糊的。直觉上,用文本方式读写的文件一定是文本文件,用二进制方式读写的文件一定是二进制文件,然而,用 notepad++ 照样可以打开甚至编辑一个 .jpg 文件或者一个 .xls 文件。 事实上,不管是文本文件还是二进制文件,在物...
- 目录 什么是阈值处理threshold二值化阈值处理(cv2.THRESH_BINARY)反二值化阈值处理(cv2.THRESH_BINARY_INV)截断阈值化处理(cv2.THRESH_TRUNC)超阈值零处理(cv2.THRESH_TOZERO_INV)低阈值零处理(cv2.THRESH_TOZERO) 什么是阈值处理 阈值处理是剔除原图像中像素高... 目录 什么是阈值处理threshold二值化阈值处理(cv2.THRESH_BINARY)反二值化阈值处理(cv2.THRESH_BINARY_INV)截断阈值化处理(cv2.THRESH_TRUNC)超阈值零处理(cv2.THRESH_TOZERO_INV)低阈值零处理(cv2.THRESH_TOZERO) 什么是阈值处理 阈值处理是剔除原图像中像素高...
- 目录 前言ChainMap重排列更新值 前言 容器数据类型包括数组list,字典dict以及元组tuple等。本篇,将详细介绍ChainMap字典序列的使用。 ChainMap ChainMap类管理的是一个字典序列,并按其出现的顺序搜索以查找与键关联的值。ChainMap提供了一个很好的“上下文”容器,因此可以把它看成一个栈,栈增长时发生变更,... 目录 前言ChainMap重排列更新值 前言 容器数据类型包括数组list,字典dict以及元组tuple等。本篇,将详细介绍ChainMap字典序列的使用。 ChainMap ChainMap类管理的是一个字典序列,并按其出现的顺序搜索以查找与键关联的值。ChainMap提供了一个很好的“上下文”容器,因此可以把它看成一个栈,栈增长时发生变更,...
- 目录 抖音慢动作原理实现慢动作视频 抖音慢动作原理 在影视以及抖音中,我们都能看到各种慢动作效果。比如武打片为了动作的特效,往往会放慢播放速度等等。今天,我们就通过OpenCV来实现其慢动作效果。 慢动作实现原理: 读取视频,将视频分为3部分,第一部分为慢动作前的视频片段,第二部分为慢动作视频片段,第三部分为慢动作后的视频片段将这3部分同时保存为视频... 目录 抖音慢动作原理实现慢动作视频 抖音慢动作原理 在影视以及抖音中,我们都能看到各种慢动作效果。比如武打片为了动作的特效,往往会放慢播放速度等等。今天,我们就通过OpenCV来实现其慢动作效果。 慢动作实现原理: 读取视频,将视频分为3部分,第一部分为慢动作前的视频片段,第二部分为慢动作视频片段,第三部分为慢动作后的视频片段将这3部分同时保存为视频...
- 1 闭包概念 绑定了函数内部引用的所有变量,把它引用的东西都放在一个上下文中“包”了起来 2 闭包的Demo理解 需求:比如我们要实现2个函数,每个函数有个参数,然后现在需要实现这2个函数参数的相加功能 1) 不用闭包python普通实现 #!/usr/bin/env pyt... 1 闭包概念 绑定了函数内部引用的所有变量,把它引用的东西都放在一个上下文中“包”了起来 2 闭包的Demo理解 需求:比如我们要实现2个函数,每个函数有个参数,然后现在需要实现这2个函数参数的相加功能 1) 不用闭包python普通实现 #!/usr/bin/env pyt...
- 目录 更复杂的仿射变化透视 更复杂的仿射变化 上篇博文讲解了2种最基本的仿射变换:平移与旋转。但OpenCV还给我们提供了函数cv2.getAffineTransform()来生成仿射函数cv2.warpAffine()所使用的转换矩阵M。 该函数的定义如下: def getAffineTransform(src, dst): 1 src:代表输... 目录 更复杂的仿射变化透视 更复杂的仿射变化 上篇博文讲解了2种最基本的仿射变换:平移与旋转。但OpenCV还给我们提供了函数cv2.getAffineTransform()来生成仿射函数cv2.warpAffine()所使用的转换矩阵M。 该函数的定义如下: def getAffineTransform(src, dst): 1 src:代表输...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签