大数据文摘出品
来源:anishathalye
编译:洪颖菲、秦泽宇、钱天培
此项目已经在Github上开源,赶紧来学一学!
Github链接:
基本原理
基本原理
ShinyTouch软件链接:
硬件
硬件
我们的硬件设置很简单。我们所需要的只是在网络摄像头前面以适当的角度放置一面镜子。这是我们的物料清单:
-
一个小镜子 -
硬纸盘 -
门铰链 -
热熔胶

这个是最后的成品:

手指检测

手指检测算法需要找到触摸/悬停点以进行进一步处理。我们目前的方法是使用经典计算机视觉技术,处理方式包括以下步骤:
-
通过肤色进行过滤,并设置相应的二进制阈值; -
找到手指及反射轮廓; -
找出两个最大的轮廓并确保轮廓在水平方向上重叠,而较小的轮廓在较大的轮廓上方; -
将触摸/悬停点标识为连接较大轮廓顶部和较小轮廓底部的线的中点; -
根据两个轮廓之间的垂直距离区分触摸和悬停。


上面的动图演示了校准过程,其中用户必须在屏幕周围跟随绿点移动手指。该动图包含一些调试过程,这些过程会覆盖网络摄像头的实时视频。网络摄像头坐标中的触摸点以红色显示。在校准过程完成之后,投影矩阵会以红线的方式显示出来,并且软件切换到以估测点为蓝色的模式。

https://www.anishathalye.com/2018/04/03/macbook-touchscreen/