目录
Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之九 简单闪烁效果
一、简单介绍
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。
这里使用 Python 基于 OpenCV 进行视觉图像处理,…
二、简单闪烁效果实现原理
闪烁效果是指物体或光源快速、周期性地改变亮度或颜色的视觉效果。
在图像处理中,闪烁效果通常通过改变图像的亮度或对比度来实现,使图像在观察者眼中产生明暗变化的感觉。
这种效果常用于增强视觉吸引力或制造特殊效果,比如模拟闪烁的灯光、霓虹灯等。
在实际应用中,闪烁效果的频率、幅度和持续时间可以根据需要进行调整,以达到理想的视觉效果。
实现原理:
1、设定闪烁周期: 确定闪烁的周期,即图像亮度和对比度调整的时间间隔。在本例中,设定为1秒。
time.time()
: 返回当前时间的时间戳,用于计算时间间隔。2、进入处理循环: 在一个无限循环中,持续处理图像以实现闪烁效果。
3、计算时间差: 在每次循环迭代中,计算当前时间与开始闪烁的时间之间的时间差。
4、调整亮度和对比度: 如果时间差大于闪烁周期,则进行图像亮度和对比度的调整。调整值通常在一定范围内随机生成,以获得随机的闪烁效果。
np.random.uniform()
: 用于生成指定范围内的随机数,用于调整亮度和对比度。5、应用调整后的效果: 使用
cv2.convertScaleAbs()
函数将调整后的亮度和对比度应用于原始图像,生成调整后的图像。
cv2.convertScaleAbs()
: 将输入数组进行比例缩放并转换为无符号8位整数类型,用于调整图像的亮度和对比度。6、反转亮度: 如果时间差大于闪烁周期,则将调整后的图像的亮度反转,以模拟闪烁效果。
三、简单闪烁效果案例实现简单步骤
1、编写代码
2、运行效果
3、具体代码
"""
简单的闪烁效果
1、读取图像文件: 首先,从文件系统中读取输入的图像文件,该图像将作为闪烁效果的基础。
2、设定闪烁周期: 确定闪烁的周期,即图像亮度和对比度调整的时间间隔。在本例中,设定为1秒。
3、进入处理循环: 在一个无限循环中,持续处理图像以实现闪烁效果。
4、计算时间差: 在每次循环迭代中,计算当前时间与开始闪烁的时间之间的时间差。
5、调整亮度和对比度: 如果时间差大于闪烁周期,则进行图像亮度和对比度的调整。调整值通常在一定范围内随机生成,以获得随机的闪烁效果。
6、应用调整后的效果: 使用 cv2.convertScaleAbs() 函数将调整后的亮度和对比度应用于原始图像,生成调整后的图像。
7、反转亮度: 如果时间差大于闪烁周期,则将调整后的图像的亮度反转,以模拟闪烁效果。
8、显示处理后的图像: 使用 cv2.imshow() 函数在窗口中显示处理后的图像。
9、等待用户退出: 检测用户是否按下 'q' 键,如果是则退出循环。
10、释放资源: 循环结束后,释放窗口资源并结束程序。
"""
import cv2
import numpy as np
import time
def BlinkingEffect(image, blink_interval=1):
"""
简单闪烁效果
:param image:
:param blink_interval: 闪烁间隔时间
:return:
"""
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/659d82054052d95e7ba79ebf0092cb15.png)
![img](https://img-blog.csdnimg.cn/img_convert/19f2e6ac7640d8616474421e012b4178.png)
![img](https://img-blog.csdnimg.cn/img_convert/c5cde22fd4223375081df842d64973c6.png)
![img](https://img-blog.csdnimg.cn/img_convert/2238539313899e005bdc2b5eed2fea6e.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
<img src="https://img-community.csdnimg.cn/images/fd6ebf0d450a4dbea7428752dc7ffd34.jpg" alt="img" style="zoom:50%;" />