介于小朋友爱玩手机,但手机伤眼。故想利用身边的物件整个墙面的手机触控投影。
一、准备材料
- 两个摄像头(一个要求广角120度以上,至于像素要求不高。笔者用一个720p的。另一个尽量对捕获的色彩饱和度越高越好,笔者用了个1080p的高清直播摄像头。尽量先利用身边的材料即可,后续可自行对代码进行调整)
- 带手机同屏的投影仪(也可以配个HDMI的投屏器,便宜。(∩_∩))
- 安卓手机一台(笔者用高通骁龙652,3G内存。现在估计这种二手机就二、三百元)
- PC一台(I3即可)
- 红色LED发光件(可以淘宝看看 儿童玩具发光戒指 等,笔者是把发光耳勺的头部换成红色LED再套个红色塑料壳。下文表述为发光笔)
二、原理描述
两个摄像头各自分管,协同配合。顶部的判断发光笔触摸到墙面否,主摄像头识别发光笔在投影中正面的点击位置。
投影仪通过同屏方法连接手机屏幕。
PC上实现将摄像头识别的点击信息传递给手机,控制其进行相应的点击、滑动操作。
三、实现代码
代码用python完成。具体已上传至github(https://github.com/chenfengyan/Touch-projector)
代码中需要根据自己的实际信息修改相应配置。
const.py 中 填写 手机的device id (可用adb devices查看)
phone_operator.py 中 填写 'phone_location_in_capture' (按序是 竖屏时左上点、右下点 横屏时左上点、右下点 坐标 以及 手机屏幕高度的分辨率)
最后,调用K12_touch_projector.py 的main函数可以开始执行。笔者连接两个摄像头到PC上后,cv2.VideoCapture(0)是Top_camera, cv2.VideoCapture(1)是Main_camera.需按情况自行调整
四、实现情况和待改进点
来源:51CTO
作者:cfy10
链接:https://blog.51cto.com/cfy10/2465688