【新机械楼537的Kinect编程学习基础篇(一)】最简单的通过kinect获取图像的代码
来源:互联网 发布:datatype json 编辑:程序博客网 时间:2024/05/16 10:15
学习kinect开发是我研究生阶段的重要组成部分,作为一个编程菜鸟,以前没有任何经验,第一步肯定是需要对其他人的代码加以模仿。老师告诉我,要带着任务学习。既然不是计算机相关专业的同学,显然缺乏理解所有代码的能力,也不太可能做到每一行代码都知道怎么来的,更不太可能完全靠自己写出需要的程序。但是带着任务去做,知道自己要做出什么,通过各种学习资料来扩展自己的知识面,有目的地去做每一步,可能是完成一项工程最好的方法。
我阅读的材料来自于网络和以下两本kinect开发教材:
《KINECT人机交互开发实战》人民邮电出版社
《KINECT应用开发实战——用最自然的方式与机器对话》机械工业出版社
在敲代码的过程中,我发现:第一代码是有错误的。第二为了简便,书上通常不会印上所有的代码。这就导致初学者的困惑和不解,由于做这个的人也不太多,无处去询问的可能性大增。
当遇见书上代码出错和有问题的时候,我会尽量上网找到类似的程序,争取做一下移植。当我自己的力量不够的时候,我会求助于实验室的大博士同学。为了让更多的kinect开发者受益,我决定每次成功之后,贴上在大家的共同努力下敲出的0错误0警告并且可以实现功能的代码。希望对和我一样菜鸟的初学者有帮助。
下面我就贴上来第一次运行的程序——通过kinect获取RGB图像。
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.Windows.Navigation;using System.Windows.Shapes;using Microsoft.Kinect;namespace KinectColorViewer{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { KinectSensor kinectSensor; private byte[] pixelData;// public MainWindow() // { // InitializeComponent(); // } private void Window_Loaded(object sender, RoutedEventArgs e) {//在loaded事件的处理函数中添加kinectsensor对象的初始化代码 kinectSensor = (from sensor in KinectSensor.KinectSensors where sensor.Status == KinectStatus.Connected select sensor).FirstOrDefault(); kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30); kinectSensor.Start(); kinectSensor.ColorFrameReady += kinectSensor_ColorFrameReady; } private void Window_Closed(object sender, EventArgs e) { kinectSensor.Stop(); } private void kinectSensor_ColorFrameReady(object sender,ColorImageFrameReadyEventArgs e) { using (ColorImageFrame imageFrame = e.OpenColorImageFrame()) {if (imageFrame !=null) { this.pixelData = new byte[imageFrame.PixelDataLength]; imageFrame.CopyPixelDataTo(this.pixelData); this.ColorImage.Source = BitmapSource.Create(imageFrame.Width,imageFrame.Height,96,96,PixelFormats.Bgr32,null,pixelData,imageFrame.Width * imageFrame.BytesPerPixel); } } } }}
以下是.xaml文件中的代码。
<Window x:Class="KinectColorViewer.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Loaded="Window_Loaded" Closed="Window_Closed"> <Grid> <Image HorizontalAlignment="Left" Name="ColorImage" Stretch="Fill" VerticalAlignment="Top" /> </Grid></Window>
0 0
- 【新机械楼537的Kinect编程学习基础篇(一)】最简单的通过kinect获取图像的代码
- kinect+openni获取kinect的颜色图像和深度图像
- Kinect彩色相机标定(一):彩色图像的采集
- OpenNI学习笔记1-获取kinect的颜色图像和深度图像
- 通过Kinect的深度图像数据计算三维点云
- 通过Kinect的深度图像数据计算三维点云
- Kinect实现简单的三维重建
- Kinect实现简单的三维重建
- Kinect实现简单的三维重建
- Kinect+OpenNI学习笔记之4(OpenNI获取的图像结合OpenCV显示)
- 从零开始学习Kinect编程(一) 4.20
- C# kinect v2学习笔记(五)骨骼图像和彩色图像的叠加
- Ogre中显示Kinect的彩色图像
- 如何读取kinect生成的图像序列
- 如何使用Kinect的骨架图像。
- kinect 深度彩色图像对齐的问题
- 获取kinect的颜色图像和深度图像(网上资料的整合)
- kinect 学习笔记二(深度图像的利用--抠取用户躯体)
- C++实现各种基础排序(冒泡、选择、快排、插入、堆排、希尔、归并)
- matlab函数interp2及其c++代码
- android的Service----讲述四大组件之一服务
- Android ADB server didn't ACK * failed to start daemon
- Android如何去除标题栏
- 【新机械楼537的Kinect编程学习基础篇(一)】最简单的通过kinect获取图像的代码
- rdtsc 备忘
- 黑马程序员_JAVA基础——常用DOS命令,环境变量配置
- scp时候出现ssh Connection refused的解决方案
- delphi 中locate函数的使用方法
- Android 使用shape来优化界面效果
- C语言实现《设计模式之禅》之工厂模式——抽象工厂
- jqgrid禁掉点击行时,选中当前行。
- DELPHI数组排序