大数据文摘出品
来源:anishathalye
编译:洪颖菲、秦泽宇、钱天培
此项目已经在Github上开源,赶紧来学一学!
Github链接:
基本原理
基本原理
ShinyTouch软件链接:
硬件
硬件
我们的硬件设置很简单。我们所需要的只是在网络摄像头前面以适当的角度放置一面镜子。这是我们的物料清单:
-
一个小镜子 -
硬纸盘 -
门铰链 -
热熔胶
![](https://i-blog.csdnimg.cn/blog_migrate/4a5a7632a71c9af315c5cf00ff0a27a5.gif)
这个是最后的成品:
![](https://i-blog.csdnimg.cn/blog_migrate/219058da969cb9dccb4a17b0304053fd.jpeg)
手指检测
![](https://i-blog.csdnimg.cn/blog_migrate/a16bc1f1aebd710e69cf01a939655e55.jpeg)
手指检测算法需要找到触摸/悬停点以进行进一步处理。我们目前的方法是使用经典计算机视觉技术,处理方式包括以下步骤:
-
通过肤色进行过滤,并设置相应的二进制阈值; -
找到手指及反射轮廓; -
找出两个最大的轮廓并确保轮廓在水平方向上重叠,而较小的轮廓在较大的轮廓上方; -
将触摸/悬停点标识为连接较大轮廓顶部和较小轮廓底部的线的中点; -
根据两个轮廓之间的垂直距离区分触摸和悬停。
![](https://i-blog.csdnimg.cn/blog_migrate/7f7106002dc8f102830bd3f4dfd6153b.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/ffa84a2bc9ac379a3a33ff52d840dcb0.gif)
上面的动图演示了校准过程,其中用户必须在屏幕周围跟随绿点移动手指。该动图包含一些调试过程,这些过程会覆盖网络摄像头的实时视频。网络摄像头坐标中的触摸点以红色显示。在校准过程完成之后,投影矩阵会以红线的方式显示出来,并且软件切换到以估测点为蓝色的模式。
![](https://i-blog.csdnimg.cn/blog_migrate/ce6be1a2779a04d40316a9fdfcadb216.gif)
https://www.anishathalye.com/2018/04/03/macbook-touchscreen/