精华内容
下载资源
问答
  • 基于arduino的手势控制器,通过手势控制ppt的演示,基于arduino的手势控制器,通过手势控制ppt的演示
  • C++ 手势控制 arduino 小车。 JY901 ESP8266 L298N arduino 四驱小车 的代码及实现, JY901 arduino
  • android 图片手势控制dome
  • KINECT 通过手势控制左右翻页效果
  • 基于51单片机的手势控制小车,手势传感器支持9种手势类型,实现手势控制小车,前进,后退,左转弯,右转弯,停止。 首先把手势传感器水平放置好,通过手势无线控制小车运动 相比那种带手套手势控制、 Leap motion...

    基于51单片机的手势控制小车,手势传感器支持9种手势类型,实现手势控制小车,前进,后退,左转弯,右转弯,停止。

    首先把手势传感器水平放置好,通过手势无线控制小车运动

    相比那种带手套手势控制、 Leap motion手势控制、kinect手势控制,价格便宜

     

    展开全文
  • opencv 飞行游戏手势控制源码。飞行游戏手势控制。。。。
  • 电子-手势控制小车.zip,DIYDIY大赛
  • 主要介绍了Android实现手势控制ImageView图片大小的相关资料,需要的朋友可以参考下
  • 手势控制在我们的日常生活中应用的越来越广泛,比如说手势控制电脑,手势控制电视,还有更加智能的是利用手势控制摄像头来隔空玩游戏。手势控制让我们的生活越来越精彩,在某些方面也让我们的操作越来越简便。   ...
  • 手势控制的小车

    2015-07-31 15:46:22
    可进行手势控制的小车,采用ADXL345,控制简单,可编性强
  • 手势控制PPT的播放

    2017-06-22 10:47:51
    通过Kinect,结合SDK开发用手势控制PPT播放,其中右手向外侧摆动为下一页,左手向外侧为上一页,双手举起来为播放,双手举过头顶为黑化。
  • 手势控制音乐播放器 源码

    热门讨论 2011-01-01 12:55:33
    手势控制音乐播放器 源码
  • android 手势控制

    2017-07-10 21:03:59
    android手势控制 实现思路:实现这个要使用一个ViewFlipper  获取手指的XY 判断滑动X Y加还是剪 判断左滑还是右滑 这是activity_main.xml xmlns:android=...

    android手势控制



    实现思路:实现这个要使用一个ViewFlipper

      获取手指的XY  判断滑动X Y加还是剪   判断左滑还是右滑


    这是activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
        android:layout_height="match_parent" tools:context="com.example.android_07_10.MainActivity">
    
    
    
        <ViewFlipper
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/vf_main_image"
            >
        </ViewFlipper>
    
    
    
    
    </LinearLayout>


    然后是MainActivity.java

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.GestureDetector;
    import android.view.MotionEvent;
    import android.widget.ImageView;
    import android.widget.Toast;
    import android.widget.ViewFlipper;
    
    public class MainActivity extends AppCompatActivity {
    
        private ViewFlipper vf_main_image;
        private int images[]={R.drawable.s1,R.drawable.s2,R.drawable.s3};
        private GestureDetector gd;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            vf_main_image = (ViewFlipper) findViewById(R.id.vf_main_image);
            for (int i = 0; i < images.length; i++) {
                ImageView iv=new ImageView(this);
                iv.setImageResource(images[i]);
                vf_main_image.addView(iv);
            }
    
    
            //实例化手势检测器
            gd = new GestureDetector(this, new GestureDetector.OnGestureListener() {
                //按下
                @Override
                public boolean onDown(MotionEvent e) {
                    return false;
    
    
                }
                //按下,但是还未抬起
                @Override
                public void onShowPress(MotionEvent e) {
    
                }
                //轻按,按一下,立刻抬起
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    return false;
                }
                //滚动
                @Override
                public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                    return false;
                }
                //长按
                @Override
                public void onLongPress(MotionEvent e) {
    
                }
                //拖动
                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                    if(e2.getX()-e1.getX()>200){
                        Toast.makeText(MainActivity.this, "右滑,上一张", Toast.LENGTH_SHORT).show();
                        vf_main_image.showPrevious();
                        //左进右出
                        vf_main_image.setInAnimation(MainActivity.this,R.anim.left_in);
                        vf_main_image.setOutAnimation(MainActivity.this,R.anim.right_out);
                    }
                    if (e1.getX()-e2.getX()>200){
                        Toast.makeText(MainActivity.this, "左滑,下一张", Toast.LENGTH_SHORT).show();
                        vf_main_image.showNext();
                        //左进左出
                        vf_main_image.setInAnimation(MainActivity.this,R.anim.right_in);
                        vf_main_image.setOutAnimation(MainActivity.this,R.anim.left_out);
                    }
    
    
                    return false;
    
    
    
                }
            });
    
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            return gd.onTouchEvent(event);
        }
    }

    在res中新建一个anim文件夹

    里面 可以是使用你需要滑动的效果


    我这里随意定义了几个xml 用来展示

    left_in.xml


    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true"
        android:duration="1000"
        >
         <translate
             android:fromXDelta="-100%p"
             android:toXDelta="0"
             ></translate>
    
        <rotate
            android:fromDegrees="0"
            android:toDegrees="360"
            android:pivotX="50%"
            android:pivotY="50%"
            ></rotate>
    
    </set>

    left_out.xml


    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true"
        android:duration="1000"
        >
         <translate
             android:fromXDelta="0"
             android:toXDelta="-100%p"
             ></translate>
    
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-360"
            android:pivotX="50%"
            android:pivotY="50%"
            ></rotate>
    
    </set>


    right_in.xml


    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true"
        android:duration="1000"
        >
         <translate
             android:fromXDelta="100%p"
             android:toXDelta="0"
             ></translate>
    
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-360"
            android:pivotX="50%"
            android:pivotY="50%"
            ></rotate>
    
    </set>


    right_out.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:fillAfter="true"
        android:duration="1000"
        >
         <translate
             android:fromXDelta="0"
             android:toXDelta="100%p"
             ></translate>
    
        <rotate
            android:fromDegrees="0"
            android:toDegrees="360"
            android:pivotX="50%"
            android:pivotY="50%"
            ></rotate>
    
    </set>

    然后运行 就可以了   一个简单的手势控制 就实现了 



    展开全文
  • 主要为大家详细介绍了Android手势控制实现缩放、移动图片,感兴趣的小伙伴们可以参考一下
  • 一个用手势控制的计算器
  • 手势控制在我们的日常生活中应用的越来越广泛,比如说手势控制电脑,手势控制电视,还有更加智能的是利用手势控制摄像头来隔空玩游戏。手势控制让我们的生活越来越精彩,在某些方面也让我们的操作越来越简便。   ...
  • 主要介绍了Android实现通过手势控制图片大小缩放的方法,结合实例形式分析了Android控制图片缩放的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
  • ImageView和FrameLayout拥有手势控制和定位动画
  • 基于stc15单片机的手势控制小车的遥控部分,该代码主要实现了姿态传感器的使用,蓝牙模块的收发设计,用于遥控具有多种运动功能的小车
  • 在实验中,搭建了一个基于Android设备上增强现实系统的手势控制系统,整个系统的核心在于通过Leap Motion提供的API编写程序来识别自定义手势部分。但是为了能够更直观的体验手势控制的交互方式,在实验中加入了增强...
  • 基于Opencv的VC.net赛车游戏手势控制源代码,欢迎下载。
  • 通过手势控制PPT播放,上翻页下翻页,结束播放。已经经过调试,可直接进行使用,普通摄像头就可以。内含手势库,可直接运行进行操作
  • 比如说今年召开的CES Asia电子展上,大众就展出了一辆带有手势控制功能的Golf R Touch。当然,大众并不是唯一的参与者。同样是在这届CES上,英特尔展出了3D实感技术,不仅可以捕捉手部动作,还能够实...

    触摸控制方式正在逐渐取代汽车中控屏上的物理按键。但是,我们也都知道,触控并非是唯一被选择的交互方式。语音、手势甚至包括眼球、意念控制都曾出现在各式各样的概念车上。今儿的主角就是手势控制技术。

    比如说今年召开的CES Asia电子展上,大众就展出了一辆带有手势控制功能的Golf R Touch。当然,大众并不是唯一的参与者。同样是在这届CES上,英特尔展出了3D实感技术,不仅可以捕捉手部动作,还能够实现面部识别、3D扫描建模等。而在随后的谷歌2015年I/O开发者大会上,一款名为Project Soli的可穿戴智能设备芯片也能够实时检测双手和手指上的微小活动,并根据设定执行相应动作。这些看上去就酷炫无比让人手痒痒的技术,是怎么做到的呐?

    手势控制,天下三分

    虽然三家公司都是手势识别技术,但是他们三个所采用的具体技术却不尽相同。据透露,大众的Golf R Touch上采用的是ToF技术,英特尔的是结构光技术,而谷歌则使用了毫米波雷达的技术。下面就分别来说道说道。

    ToF的全称为飞行时间(Time of Flight),是一种通过计算光线的传播时间来测量距离的技术。根据距离的不同来判断出不同手指的具体位置,从而判断出具体的手势,再对应到相应的控制命令之上。

    要通过光线传播来测算距离,那么就需要一个能够发射光线的装置和接收光线的感应装置。大众使用了一个3D相机模块来发射脉冲光,再利用内置的感应器接收用户手部反射回的光线。然后,根据二者的时间差,处理芯片就可以构建出手部目前的位置和姿势。

    大众手势识别技术中藏在换挡杆后方的ToF摄像头(红点位置)

    通过实时采集这些信息,中控系统就可以调用相应的数据库获得用户正在进行的动作。再根据预先定义的功能,就可以实现不同的操作。由于光的传播速度非常快,基于ToF技术的感光芯片需要飞秒级的快门来测量光飞行时间。这也是ToF技术难以普及的原因之一,这样的感光芯片成本过高。

    结构光技术基本原理与ToF技术类似,所不同之处在于其采用的是具有点、线或者面等模式图案的光。以英特尔公司的集成式前置实感摄像头为例,其包括了红外激光发射器、红外传感器、色彩传感器以及实感图像处理芯片。

    英特尔实感技术所用摄像头

    其基本原理为:首先激光发射器将结构光投射至前方的人体表面,再使用红外传感器接收人体反射的结构光图案。然后,处理芯片根据接收图案在摄像机上的位置和形变程度来计算物体人体的空间信息。结合三角测距原理,再进行深度计算,即可进行三维物体的识别。摄像头把采集到的信息发送到负责实感计算的软件开发包(Software Development Kit,SDK)后,该SDK结合加速度计算器,就可以提供手势识别等功能。

    作为一种快速、便携、高精度的三维测量技术,结构光测量技术在航空、模具、医疗等领域均得到了广泛的应用。手势识别只是其中的一个应用案例。

    毫米波雷达的原理同样与ToF技术基本相同,只不过用于测量的介质从光线变成了无线电波。Project Soli利用内置的毫米波发生器把无线电波(雷达波)发射出去,然后利用接收器接收回波。这时,内置的处理芯片会根据收发之间的时间差实时计算目标的位置数据。

    通过比较不同时间段手指位置的不同,Project Soli就可以与内置的数据比较,得到手指正在进行的动作。毫米波雷达的缺点在于信号容易被空气阻挡,扫描范围有限,因而对远距离目标探测不清楚,但对近距离目标勘测十分清晰。在主动安全技术中,毫米波雷达的身影已经不可或缺。另外,在近程高分辨力防空系统、导弹制导系统、目标测量系统等均有应用。

    车载路漫漫

    大众的手势识别技术在体验过程中虽然反应略慢,但是准确率还不错;英特尔的实感技术据称已经研发了三年之久,在游戏上也已经开始实用;谷歌的Project Soli则还只是个展示,尚未正式应用。但是不管是哪一个,车载的路依然很长。大众的工程师表示至少还需要两年的时间才能够把手势识别正式带到量产车型之上,英特尔的实感技术还在与车企接洽,至于谷歌的,就更远了。

    ToF技术在应用时具有明显的缺点——“外部叠加误差”。所谓外部叠加误差,是相对于由于光线散射导致的内部叠加误差而言的。误差产生的原因在于相机发射的光线在到达手部时没有直接返回相机的感光原件,而是通过几次不规则漫反射才回到相机模块。这样测量出来的距离就与实际距离不匹配。然而,如果相机中的背景是固定的,感应器就可以忽略外部叠加误差引起的测量错误。大众Golf正是利用车厢这一固定的背景来减少误差带来的影响。

    谷歌Project Soli芯片

    Project Soil采用的是60GHz、波长为5毫米的极高频毫米波无线电波来捕捉动作、距离、速度等信息,感应误差精细到毫米。然而,如何把具有如此精度的设备微小化是一件十分苦难的事情,最难的地方在于微小化会影响器件的发射功率和效率、感应灵敏度等。谷歌用了十个月左右才将其从PC主机大小缩小到了硬币大小,且为了提高精度与排除干扰,用到了两个发射器与四个接收器。目前,Project Soli还没有正式应用到具体设备中。

    至于英特尔的实感技术,从技术本身来说,最需要解决的问题首先是需要验证是否适合用在车内。另外,从现场体验来看,识别的准确度还有待提升。

    除了技术研发上的难题之外,用户在使用时的体验也对开发者提出了挑战。

    与传统操作方式的不同就要求开发团队设计一套新手教程,以此来让用户逐步体感技术的使用方法;用户在使用过程中可能手的一部分会在探测区域之外;在实际的应用中,系统也会需要根据环境进行摄像头的矫正,存在一个学习的过程。这些都是需要开发团队提前想好应对策略。

    展开全文
  • 主要介绍了Android应用中实现手势控制图片缩放的完全攻略,采用了Matrix矩阵的方法,实例讲解了包括触摸点设置与各种冲突的处理等方面,相当全面,需要的朋友可以参考下
  • 在进行手势控制之前,需要手势的相关信息,比如从左向右滑动,先通过程序捕捉到手势的信息。 在安装kivy时,如果安装了kivy-examples(可以使用命令python -m pip install kivy_examples==1.11.1安装),在kivy-...

    在App开发中,为了加强用户体验,通常需要在App中添加手势功能,即通过向左,向右和向上滑动的方式来触发不同的事件,从而实现不同的功能。

    在进行手势控制之前,需要手势的相关信息,比如从左向右滑动,先通过程序捕捉到手势的信息。

    在安装kivy时,如果安装了kivy-examples(可以使用命令python -m pip install kivy_examples==1.11.1安装),在kivy-examples的安装目录下找到gestures/gesture_board.py文件,运行后可以看到一个黑背景的窗口,无内容,此时录入想要添加的手势,在控制台会生成gesture representation信息来存储录入的手势,如图示

    可以定义变量保存信息

    gesture_strings = {
        'left_to_right':'eNp91E1PE0EYB/AiFKSiCPiCioovyIIK+IrvHQEdFF8QFFelQFs2bIO..省略...4+JGFQVN6DGUiTb8BIzI0lg=='
    }

    首先定义gesture.py,navigationdrawer要先安装,安装命令garden install navigationdrawer

    from kivy.gesture import GestureDatabase
    from navigationdrawer import NavigationDrawer as ND
    from kivy.gesture import Gesture
    
    gesture_strings = 
         { 'left_to_right':'eNp91E1PE0EYB/AiFKSiCPiCioovyIIK+IrvHQEdFF8QFFelQFs2bIO..省略...4+JGFQVN6DGUiTb8BIzI0lg==' }
    
    gestures = GestureDatabase()
    for name,gesture_string in gesture_strings.items():
        gesture = gestures.str_to_gesture(gesture_string)
        gesture.name = name
        gestures.add_gesture(gesture)
    
    class GestureBox(ND):
        def __init__(self, **kwargs):
            for name in gesture_strings:
                self.register_event_type('on_{}'.format(name))
            super(GestureBox, self).__init__(*kwargs)
    
        def on_left_to_right(self):
            pass
    
        def on_touch_down(self, touch):
            touch.ud['gesture_path'] = [(touch.x,touch.y)]
            super(GestureBox,self).on_touch_down(touch)
    
        def on_touch_move(self, touch):
            try:
                # touch.ud['line'].points += [touch.x,touch.y]
                touch.ud['gesture_path'].append((touch.x,touch.y))
                super(GestureBox,self).on_touch_move(touch)
            except(KeyError) as e:
                print('KeyError has excepted')
    
        def on_touch_up(self, touch):
            # check if fit
            if 'gesture_path' in touch.ud:
                # new gesture
                gesture = Gesture()
                # add move coordinate
                gesture.add_stroke(touch.ud['gesture_path'])
                # size
                gesture.normalize()
                # matching gesture, minscore
                match = gestures.find(gesture,minscore=0.5)
                if match:
                    print("{} happened".format(match[1].name))
                    self.dispatch('on_{}'.format(match[1].name))
            super(GestureBox,self).on_touch_up(touch)
    

    在需要使用手势的.py文件中

    from kivy.app import App
    from kivy.uix.floatlayout import FloatLayout
    from custom_gestures.gesture_box import GestureBox  
    
    class DatecodePage(GestureBox):
        def __index__(self,**kwargs):
            super().__init__(**kwargs)
    
        @staticmethod
        def back_to_index():
            App.get_running_app().screen_manager.transition.direction = 'right'
            App.get_running_app().screen_manager.current = "Index"

    在.kv文件中

    <DatecodePage>:
        on_left_to_right:root.back_to_index()
        FloatLayout:
          ....
    

    这样就可以在程序中向左滑动返回页面了。

    展开全文
  • title: 实战1.2-利用手势识别器,实现视图的手势控制知识预备什么是仿射变换?从视觉效果上来理解,仿射变换是通过一系列原子变换复合而来的变换。包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation...
  • Kinect手势控制鼠标

    千次下载 热门讨论 2011-10-20 22:51:42
    使用OpenNI类库实现。在Kinect的支持下,通过对手势的...该程序使人能够徒手控制PC,如用Firefox浏览网页,玩水果忍者等等。此程序为非MFC版本。开发教程:http://blog.csdn.net/chenxin_130/article/details/6693390
  • 面向虚拟交互的手势控制器的研制,杨琦,帅立国,本文针对虚拟交互的输入手段依赖键鼠、手柄等外设而缺乏自然性的问题,研制了一种基于惯性传感技术的手势控制器,并进行了相关实

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,602
精华内容 1,040
关键字:

手势控制