{"id":62,"date":"2012-01-12T14:54:05","date_gmt":"2012-01-12T05:54:05","guid":{"rendered":"http:\/\/www.syuheiuda.com\/?p=62"},"modified":"2012-01-12T14:54:05","modified_gmt":"2012-01-12T05:54:05","slug":"%e3%83%a1%e3%83%87%e3%82%a3%e3%82%a2%e6%8a%80%e8%a1%93%e5%9f%ba%e7%a4%8e3d%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%9c%80%e7%b5%82%e8%aa%b2%e9%a1%8c","status":"publish","type":"post","link":"https:\/\/www.syuheiuda.com\/?p=62","title":{"rendered":"\u30e1\u30c7\u30a3\u30a2\u6280\u8853\u57fa\u790e(3D\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0)\u6700\u7d42\u8ab2\u984c"},"content":{"rendered":"<p>\u3042\u308b\u7a0b\u5ea6\u5f62\u306b\u306a\u3063\u305f\u306e\u3067\u3068\u308a\u3042\u3048\u305a\u8cbc\u3063\u3066\u304a\u304f<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">import SimpleOpenNI.*;\nimport ddf.minim.*;\n\nSimpleOpenNI kinect;\n\nHashMap&lt;Integer, PVector&gt;hands=new HashMap&lt;Integer, PVector&gt;();\nPVector posLeft =new PVector(0, 0);\nPVector posRight =new PVector(0, 640);\n\nboolean flag=false;\n\nMinim minim;\nAudioPlayer hajime;\nAudioPlayer ok1;\nAudioPlayer ok2;\nAudioPlayer count;\nAudioPlayer bluescreen;\n\nvoid setup () {\n  minim=new Minim(this);\n  ok1=minim.loadFile(&quot;ok1.wav&quot;);\n  ok2=minim.loadFile(&quot;ok2.wav&quot;);\n  hajime=minim.loadFile(&quot;hajime.wav&quot;);\n  hajime.play();\n\n  kinect=new SimpleOpenNI(this);\n  kinect.enableDepth();\n  kinect.setMirror(true);\n\n  kinect.enableRGB();\n  kinect.alternativeViewPointDepthToImage();\n\n  kinect.enableGesture();\n  kinect.addGesture(&quot;Wave&quot;);\n  kinect.addGesture(&quot;RaiseHand&quot;);\n\n  kinect.enableHands();\n\n  size(kinect.depthWidth(), kinect.depthHeight());\n}\n\nvoid draw() {\n  kinect.update();\n\n  \/\/tint(128, 128, 128, 255);\n  image(kinect.rgbImage(), 0, 0);\n\n  drawHands();\n\n  strokeWeight(1);\n  line(posLeft.x, 0, posLeft.x, kinect.depthHeight());\n  line(posRight.x, 0, posRight.x, kinect.depthHeight());\n}\n\n\nvoid drawHands() {\n  for (Map.Entry entry:hands.entrySet()) {\n    int id=(Integer)entry.getKey();\n    PVector pos3d=(PVector)entry.getValue();\n\n    PVector posScreen =new PVector();\n    kinect.convertRealWorldToProjective(pos3d, posScreen);\n\n  }\n}\n\nvoid onRecognizeGesture(String strGesture, PVector idPosition, PVector endPosition) {\n  println(&quot;\u30b8\u30a7\u30b9\u30c1\u30e3\u30fc\u540d:&quot;+strGesture);\n  kinect.startTrackingHands(endPosition);\n  if (strGesture.equals(&quot;Wave&quot;)==true) {\n    if(flag==false){\n    bluescreen=minim.loadFile(&quot;bluescreen.wav&quot;);\n    bluescreen.play();\n    flag=true;\n    }else{\n    count=minim.loadFile(&quot;count.wav&quot;);\n    count.play();\n    }\n    delay(3000);\n    PImage img1;\n    img1=createImage(int(posRight.x-posLeft.x-1),kinect.rgbHeight(),RGB);\n    img1=kinect.rgbImage().get(int(posLeft.x),0,int(posRight.x-posLeft.x-1),kinect.rgbHeight());\n    img1.save(&quot;img1.jpg&quot;);\n    save(&quot;img.jpg&quot;);\n  }\n  else if(strGesture.equals(&quot;RaiseHand&quot;)==true){\n    for (Map.Entry entry:hands.entrySet()) {\n      int id=(Integer)entry.getKey();\n      PVector pos3d=(PVector)entry.getValue();\n\n      PVector posScreen =new PVector();\n      kinect.convertRealWorldToProjective(pos3d, posScreen);\n      if (posScreen.x&lt;kinect.depthWidth()\/3) {\n        posLeft=posScreen;\n        println(&quot;Left:&quot;+posLeft.x+&quot;,&quot;+posLeft.y);\n        ok1.play();\n      }\n      else if(posScreen.x&gt;kinect.depthWidth()\/3*2) {\n        posRight=posScreen;\n        println(&quot;Right:&quot;+posRight.x+&quot;,&quot;+posRight.y);\n        ok2.play();\n      }\n    }\n  }\n}\n\nvoid onUpdateHands(int handId, PVector pos, float time) {\n  hands.put(handId, pos);\n}\n\nvoid onDestroyHands(int handId, float time) {\n  hands.remove(handId);\n}\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u3042\u308b\u7a0b\u5ea6\u5f62\u306b\u306a\u3063\u305f\u306e\u3067\u3068\u308a\u3042\u3048\u305a\u8cbc\u3063\u3066\u304a\u304f import SimpleOpenN&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/www.syuheiuda.com\/?p=62\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_locale":"","_original_post":""},"categories":[5],"tags":[],"views":3876,"_links":{"self":[{"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=\/wp\/v2\/posts\/62"}],"collection":[{"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":0,"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.syuheiuda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}