2016-01-22 101 views
1

我正在开发的应用程序通过网络摄像头,以控制鼠标,从这个application如何投射网络摄像头捕获的帧坐标到屏幕坐标

它简单地跟踪使用肤色分割手开始,一些噪声滤波ë轮廓分析,然后计算质心并将其分配给鼠标光标。 当然,通过这种方式,您获得的跟踪手的质心的坐标是指由网络摄像头捕获的图像帧,并且不对应于真实的屏幕坐标,因此屏幕中会出现一些您无法触及的区域。除非你有相同的网络摄像头帧和屏幕分辨率,我怎么能达到屏幕上的每一个点?

编辑

比较简单如在回答提出的比我想,这里的解决方案:

  Rectangle resolution = Screen.PrimaryScreen.Bounds; 

      int real_X = (int)((Convert.ToDouble(current_X)/frame.Width)*resolution.Width); 
      int real_Y = (int)((Convert.ToDouble(current_Y)/frame.Height)*resolution.Height); 

回答

2

如何触摸板解决这个问题,或者图形输入板?他们也会产生绝对坐标。你为什么不应用一个简单的映射,例如,通过标准化网络摄像头的坐标,然后再乘以显示器的分辨率?

实际上我没有看到问题,所以我错过了什么?