`

用摄像头控制鼠标-java实现方法

阅读更多
(暂没考虑运行效率)

1. 从摄像头中截取一张图片
2. 在图片中搜索红点的坐标,并做记录
3. 再次从摄像头中截取一张图片
4. 获取红点坐标
5. 比较两次红点的坐标即可判断鼠标要移动的方向
6. 调用Robot类(since: jdk1.2)的方法来移动鼠标

第2步细分:
  0). error = 20 ;  // 所允许的最大误差
  1). 取像素的色值:RGB(r,g,b) 放到数组 a=[r,g,b]
  2). b = [255,0,0] (红色)
  3). 计算 a和b的欧几里德距离
  4). 如果距离小于error,该节点就是要搜索的点

(第2步可以采取递归实现,先将误差值设置小一点,第一次如果没找到,就将误差error调大些,再搜索,直到找到或者误差大于所允许的最大值为止。试验中该方法效果很好)。


试验结果证明:该方法确实可以实现鼠标移动的控制,但由于没考虑运行效率,所以效果不好。


/**
	 * 欧几里德距离
	 * @param a	
	 * @param z
	 * @return
	 */
	public static double getDistance(double[] a, double[] z){
		double rs = 0;
		int d = a.length;
		for( int i = 0; i < d ; i++){
			double r = Math.pow(a[i] - z[i],2); 
			rs += r;
		}
		
		return Math.pow(rs, 0.5);
	}

分享到:
评论

相关推荐

    用Java事件处理机制实现录制回放功能

    1. **基于模拟的回放**:使用`java.awt.Robot`类模拟用户输入,例如移动鼠标、按下按键等。这种方式可以直接控制GUI的行为,但可能无法精确重现某些复杂的用户交互。 2. **基于事件序列的回放**:直接重播事件日志中...

    大华摄像头web版二次开发云台控制

    开发者可以通过调用这些接口,在网页上设计交互式的控制面板,让用户能通过鼠标或键盘控制摄像头的视角。 二次开发的关键步骤通常包括以下几点: 1. **环境配置**:安装必要的开发工具,如Visual Studio,并设置好...

    ColorTrackingOpenCV:该存储库用于我的Synopsis Science Fair项目,在该项目中,我使用网络摄像头控制鼠标

    使用OpenCV在Java中进行视觉跟踪该存储库用于我的Synopsis Science Fair项目,其中我使用网络摄像头控制鼠标。 我已经用Java更新了对象跟踪实验的最终版本。 在ledObjecTrack.java文件中,我可以跟踪任何颜色的对象...

    java 获取USB外接设备信息demo

    但是,通过使用第三方库如libusb或JavaUSB(也称为JUSB),我们可以实现这一功能。以下是对如何使用Java获取USB设备信息的详细解释。 首先,我们需要了解USB设备的一些基本概念。USB设备通常由Vendor ID (VID) 和 ...

    CameraPointingGame:CameraPointingGame 使用网络摄像头代替鼠标。 这是一个动作游戏-开源

    他们可以通过研究源代码,了解如何利用JAVA处理摄像头输入,如何实现图像识别,以及如何将这些技术应用到游戏控制中。同时,开源社区的互动也鼓励用户贡献自己的改进和创新,推动游戏不断迭代升级。 在实际游戏中,...

    Pro_Java_6_3D_Game_Development_Table-of-Contents

    - **非标准输入设备**:除了传统的键盘和鼠标,作者还介绍了如何使用网络摄像头、游戏手柄和P5数据手套等非传统输入设备来控制游戏。 - **游戏相关库的应用**:书中将演示如何结合JInput、JOAL、JMF和Odejava等库来...

    基于JAVA CS远程监控系统软件的实现(源代码+论文)

    论文部分可能会详细讨论系统的设计思路、关键技术的实现方法、性能评估以及可能遇到的问题和解决方案。这将有助于读者理解系统的整体架构、工作原理及其在实际应用中的优缺点。 总结,这个基于JAVA CS远程监控系统...

    java照相机

    这一过程涉及到对多媒体设备的枚举与选择,为后续的摄像头控制奠定了基础。 2. **媒体播放器初始化**:通过`MediaLocator`定位摄像头设备,并使用`Player`类创建播放器实例。这个实例不仅用于播放摄像头输入,还...

    java jquery webca

    #### 4.1 摄像头控制 - `#cam` 元素代表摄像头图标,通过点击可以触发摄像头的开启。 - `#webcam` 元素用于显示摄像头捕捉到的画面。 #### 4.2 图片处理 - 当用户点击拍照按钮后,通过JavaScript可以获取摄像头...

    【Java版本OpenCV】无敌OpenCV越学越爽Java版代码持续更新(环境搭建核心代码).md

    - 人脸识别:在桌面区域中查找人脸并进行操作,例如控制鼠标移动到头部中心位置。 #### 具体实施步骤 1. **搭建OpenCV开发环境:** 根据操作系统选择合适的安装方式,如Windows下可以通过命令方式或源码方式搭建,...

    基于OpenCV的云台控制系统

    除了自动的运动跟踪外,系统还支持手动云台控制,允许用户通过键盘、鼠标或其他输入设备直接控制摄像头的方向和角度。这对于调试和特殊应用场景非常有用,比如用户可以快速调整视角以查看特定区域。 【云台状态显示...

    Java3D 学习实例

    5. **视点控制**:Java3D提供了摄像头模型,允许用户从不同角度观察3D场景。这通常涉及到`View`类的配置,以及视口的设定。 6. **碰撞检测**:在3D环境中,判断两个对象是否相交是一项重要任务,Java3D提供了一些...

    kinect 模拟鼠标 源码

    标题中的“kinect 模拟鼠标 源码”指的是使用微软的Kinect体感设备来模拟计算机的鼠标操作。这个项目可能是一个软件开发实践,允许用户通过手势控制,而不是传统的鼠标,来与电脑交互。这涉及到计算机视觉、自然用户...

    java Swing方式预览海康视频.rar

    本项目"java Swing方式预览海康视频.rar"就是基于Swing设计的,主要用于实现海康摄像头的视频预览以及云台控制功能,适合进行视频预览测试或集成到其他项目中。 首先,我们来了解一下海康视频预览的关键技术点: 1...

    matlab开发-通过光源进行鼠标指针内部控制

    在MATLAB开发中,通过光源进行鼠标指针的内部控制是一种创新的交互方式,尤其是在需要精确控制或模拟真实环境的应用中。这种技术利用了颜色识别,特别是红色LED的追踪,将现实世界的动作映射到计算机屏幕上。以下是...

    JAVA入门资源

    - **输入设备**:包括键盘、鼠标、摄像头、扫描仪等。 - **输出设备**:如显示器、打印机、音响等。 - **中央处理器 (CPU)**:主要生产商有Intel和AMD。CPU的工作频率(主频)对其性能有直接影响。 - **存储器**...

    通过光源控制鼠标指针:使用颜色分隔,通过跟踪红色LED来控制鼠标指针......需要调整-matlab开发

    使用颜色分离,鼠标指针是通过跟踪红色 LED 灯来控制的... 它跟踪我的光电鼠标的红色 LED。 网络摄像头用于拍摄视频。 这是一个简单的应用程序。 我在灰度格式上使用了颜色分离技术。 也可以尝试其他颜色格式。 我...

    javaUSB

    Mojo Jojo和David Brownell通过开源项目jUSB进一步扩展了Java平台对USB设备的支持,特别针对Linux系统,使得开发者可以更加灵活地使用Java来访问和控制USB设备。 #### 二、USB规范与JavaUSB API USB规范由Compaq、...

    使用OpenCV的AI虚拟鼠标.pdf

    #### 技术原理与实现方法 本系统的开发主要依赖于以下几个关键技术: 1. **计算机视觉**:通过摄像头获取实时视频流,并利用图像处理技术分析视频中的手部动作。这里使用的是OpenCV库,它是一个强大的计算机视觉和...

    3D实现三维演示系统.rar

    标题 "3D实现三维演示系统" 提供了我们即将探讨的主题——一个使用编程技术构建的三维演示系统。这个系统很可能是通过源代码实现的,这通常意味着我们可以深入了解其内部工作原理,并根据需要进行修改和扩展。描述中...

Global site tag (gtag.js) - Google Analytics