ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:26.47KB ,
资源ID:29009883      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29009883.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(sdk开发鼠标.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

sdk开发鼠标.docx

1、sdk开发鼠标using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.W

2、indows.Forms;using System.Windows.Navigation;using System.Windows.Shapes;using Microsoft.Research.Kinect.Nui;using Coding4Fun.Kinect.Wpf;namespace CURSORS / / MainWindow.xaml 的交互逻辑 / public partial class MainWindow : Window private const float ClickThreshold = 0.3f; private const float SkeletonMaxX

3、= 0.50f; private const float SkeletonMaxY = 0.30f; Point oldpoint; Point newpoint; int frame ; private NotifyIcon _notifyIcon = new NotifyIcon(); public MainWindow() oldpoint = new Point(0,0); newpoint = new Point(0,0); frame = 0; InitializeComponent(); _notifyIcon.Icon = new System.Drawing.Icon(Cur

4、sorControl.ico); _notifyIcon.Visible = true; _notifyIcon.DoubleClick += delegate this.Show(); this.WindowState = WindowState.Normal; this.Focus(); ; Runtime nui; DateTime lastTime = DateTime.MaxValue; const int RED_IDX = 2; const int GREEN_IDX = 1; const int BLUE_IDX = 0; byte depthFrame32 = new byt

5、e320 * 240 * 4; private void Window_Loaded(object sender, RoutedEventArgs e) nui = new Runtime(); try nui.Initialize(RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseColor); catch (InvalidOperationException) System.Windows.MessageBox.Show(Runtime initial

6、ization failed. Please make sure Kinect device is plugged in.); return; try nui.DepthStream.Open(ImageStreamType.Depth, 2, ImageResolution.Resolution320x240, ImageType.DepthAndPlayerIndex); catch (InvalidOperationException) System.Windows.MessageBox.Show(Failed to open stream. Please make sure to sp

7、ecify a supported image type and resolution.); return; lastTime = DateTime.Now; nui.DepthFrameReady += new EventHandler(nui_DepthFrameReady); nui.SkeletonFrameReady += new EventHandler(nui_SkeleFramReady); nui.SkeletonEngine.TransformSmooth = true; TransformSmoothParameters parameters = new Transfor

8、mSmoothParameters(); parameters.Smoothing = 0.3f; parameters.Correction = 0.0f; parameters.Prediction = 0.0f; parameters.JitterRadius = 1.0f; parameters.MaxDeviationRadius = 0.5f; nui.SkeletonEngine.SmoothParameters = parameters; void nui_SkeleFramReady(object sender, SkeletonFrameReadyEventArgs e)

9、SkeletonFrame skeletonframe = e.SkeletonFrame; foreach (SkeletonData data in skeletonframe.Skeletons) /System.Windows.Forms.MessageBox.Show(data.UserIndex+dddd); if (data.UserIndex = 254) if (data.JointsJointID.HandLeft.TrackingState = JointTrackingState.Tracked & data.JointsJointID.HandRight.Tracki

10、ngState = JointTrackingState.Tracked) int cursonx, cursony; bool leftclick = false; Joint jointleft = data.JointsJointID.HandLeft; Joint jointright = data.JointsJointID.HandRight; Joint scaledRight = jointright.ScaleTo(int)SystemParameters.PrimaryScreenWidth, (int)SystemParameters.PrimaryScreenHeigh

11、t, SkeletonMaxX, SkeletonMaxY); Joint scaleLeft = jointleft.ScaleTo(int)SystemParameters.PrimaryScreenWidth, (int)SystemParameters.PrimaryScreenHeight, SkeletonMaxX, SkeletonMaxY); cursonx = (int)scaledRight.Position.X; cursony = (int)scaledRight.Position.Y; newpoint = new Point(cursonx,cursony); if

12、 (newpoint.X (oldpoint.X - 20) & newpoint.Y (oldpoint.Y - 20) & newpoint.X (oldpoint.X + 20) & newpoint.Y 30) oldpoint = new Point(cursonx, cursony); leftclick = true; frame = 0; if (jointleft.Position.Y ClickThreshold) leftclick = true; this.textBlock1.Text = X坐标: + cursonx.ToString() + Y坐标: + curs

13、ony.ToString(); SetCurson.SendMouseInput(cursonx, cursony, (int)SystemParameters.PrimaryScreenWidth, (int)SystemParameters.PrimaryScreenHeight, leftclick); else void nui_DepthFrameReady(object sender, ImageFrameReadyEventArgs e) PlanarImage Image = e.ImageFrame.Image; byte convertedDepthFrame = conv

14、ertDepthFrame(Image.Bits); depth.Source = BitmapSource.Create( Image.Width, Image.Height, 96, 96, PixelFormats.Bgr32, null, convertedDepthFrame, Image.Width * 4); byte convertDepthFrame(byte depthFrame16) for (int i16 = 0, i32 = 0; i16 depthFrame16.Length & i32 depthFrame32.Length; i16 += 2, i32 +=

15、4) int player = depthFrame16i16 & 0x07; int realDepth = (depthFrame16i16 + 1 3); / transform 13-bit depth information into an 8-bit intensity appropriate / for display (we disregard information in most significant bit) byte intensity = (byte)(255 - (255 * realDepth / 0x0fff); depthFrame32i32 + RED_I

16、DX = 0; depthFrame32i32 + GREEN_IDX = 0; depthFrame32i32 + BLUE_IDX = 0; / choose different display colors based on player switch (player) case 0: depthFrame32i32 + RED_IDX = (byte)(intensity / 2); depthFrame32i32 + GREEN_IDX = (byte)(intensity / 2); depthFrame32i32 + BLUE_IDX = (byte)(intensity / 2

17、); break; case 1: depthFrame32i32 + RED_IDX = intensity; break; case 2: depthFrame32i32 + GREEN_IDX = intensity; break; case 3: depthFrame32i32 + RED_IDX = (byte)(intensity / 4); depthFrame32i32 + GREEN_IDX = (byte)(intensity); depthFrame32i32 + BLUE_IDX = (byte)(intensity); break; case 4: depthFram

18、e32i32 + RED_IDX = (byte)(intensity); depthFrame32i32 + GREEN_IDX = (byte)(intensity); depthFrame32i32 + BLUE_IDX = (byte)(intensity / 4); break; case 5: depthFrame32i32 + RED_IDX = (byte)(intensity); depthFrame32i32 + GREEN_IDX = (byte)(intensity / 4); depthFrame32i32 + BLUE_IDX = (byte)(intensity)

19、; break; case 6: depthFrame32i32 + RED_IDX = (byte)(intensity / 2); depthFrame32i32 + GREEN_IDX = (byte)(intensity / 2); depthFrame32i32 + BLUE_IDX = (byte)(intensity); break; case 7: depthFrame32i32 + RED_IDX = (byte)(255 - intensity); depthFrame32i32 + GREEN_IDX = (byte)(255 - intensity); depthFra

20、me32i32 + BLUE_IDX = (byte)(255 - intensity); break; return depthFrame32; private void Window_Closed(object sender, EventArgs e) _notifyIcon.Visible = false; nui.Uninitialize(); private void Window_StateChanged(object sender, EventArgs e) if (WindowState.Minimized = WindowState.Minimized) this.Hide(); 点评回复 举报 美丽同盟 当前离线 最后登录2011-12-31注册时间2011-7-15阅读权限20精华0积分129帖子26注册会员注册会员, 积分 129, 距离下一级还需 71 积分分享0主题2 串个门 加好友

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1