dkleikesa/TouchPosition
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
本项目主要是用来做算法调试,原来项目是一个硬件设备,大尺寸的红外触摸屏,一般是在 50 寸以上的 投影仪或者大型电视墙上使用。 红外触摸屏的原理: 红外触摸屏 需要用到两种红外设备:红外线发射的二极管、红外线接收的二极管。 发射二极管射出的红外线可以被接收二极管接收到,当手指挡住部分红外线以后,就会有部分二极管接收不到红外线照射,以此条件可以判断出手指的位置。 其大概的计算原理就是,上下各有一个二极管发射红外线,二者会有一个菱形的交叉区域,当手指放到这个菱形区域中后,挡住红外线,被挡住的区域也形成了一个小的菱形,这个小菱形的中心点就是手指的位置。 本项目支持多点触控,因此算法非常复杂,但是已经基本调试到了可以发布的状态,在某些边界点上,还有很多问题,如果大家有好的思路,望多多指教。 20140721 修正了画图过程中1个像素的误差 待解决的问题: 1、3个点4个菱形情况下怎么办? 先不管 2、怎么判定是不是每个投影都有点 3、菱形个数比点少,则肯定有菱形重复使用 需要修正共用菱形的坐标 OK 4、由于上面的筛选过程有可能把真点筛选出去,所以需要从删除的数据里面找误删的点 5、点ID判定 待调试 OK 6、当菱形在矩形边界时,菱形细长 造成中心点误差很大,不能正确判定点的位置? 7.点ID判定 每个点只能有一个点与之对应 这个不能做 8.边界时候菱形划归到一个矩形里面,会出现有投影但是没有菱形的情况,造成点个数误判 YProjectionCount[i].pos[0] 1.菱形中心点位置计算 换4个点求平均值 或者都用P1 P2点来计算 试试