我开发了一个基于 Python 的实时手势识别粒子特效系统,通过摄像头捕捉手部动作,驱动上千个彩色粒子产生动态变化。支持四种手势,粒子会在不同形状间平滑过渡,形成流畅的视觉效果。
功能列表
-
张开手掌(OPEN):粒子随机散落全屏,如星尘飞舞
-
握拳(FIST):所有粒子汇聚到屏幕中心,聚集成亮点
-
胜利手势(VICTORY):粒子排列成爱心形状
-
OK 手势(OK):粒子排列成五角星形状
切换手势时,粒子通过弹簧阻尼物理系统平滑移动,没有突变。
技术栈
-
Python 3.7+
-
OpenCV(摄像头采集)
-
MediaPipe(手部关键点检测)
-
Pygame(粒子渲染和图形界面)
实现原理简述
-
手势识别:MediaPipe 提取 21 个手部关键点,根据指尖与关节的相对位置判断手指伸直/弯曲,组合成四种手势。
-
粒子物理:每个粒子带有位置、速度、目标位置。每帧施加弹簧力(拉向目标)和阻尼力(减缓震动),实现平滑追踪。
-
形状生成:爱心使用参数方程,五角星通过外/内顶点插值生成路径,粒子沿路径均匀分布。
-
拖尾效果:每帧用半透明黑色覆盖层叠加,制造运动模糊,产生流光拖尾。
源码下载
链接地址:https://www.jay-r-j.top/gesture_particle_fx/
https://www.jay-r-j.top/gesture_particle_fx/
适用场景
适合作为计算机视觉、交互设计的学习项目,也可用于创意展示或教学演示。代码结构清晰,模块分离,易于二次开发。
如遇到运行问题,欢迎留言交流。