kinect2.0 基础篇第一篇 用C#在Visual Studio上编写关闭彩色图像的三色通道的某个通道

网上基于kinect2.0 用C#语言编写的小程序太少了

下面的链接上C#语言的一些基础开发,对于什么都不会的最好手把手敲一遍 
http://blog.csdn.net/app_12062011/article/details/52665048

使用kinect2.0  要求环境如下:

系统win8以上

Usb接口3.0

Direct11 以上

1.新建一个WPF应用程序,首先肯定要添加应用  Microsoft.Kinect

2.在WPF 在Grid中 添加一个控件

<Image x:Name="image"/>

3.后端代码如下

   public partial class MainWindow : Window
    {
        private KinectSensor kinect = null;
        private ColorFrameReader colorFrame = null;
        private WriteableBitmap colorBitmap = null;
        private FrameDescription colorFrameDescription = null;
        private Int32Rect colorBitmapRect;
        private int colorBitmapStride;
        byte[] pixelData = null;

public MainWindow()
        {
            InitializeComponent();
            this.kinect = KinectSensor.GetDefault();
            this.colorFrame = kinect.ColorFrameSource.OpenReader();
            this.colorFrame.FrameArrived += colorFrame_FrameArrived;
            this.colorFrameDescription = this.kinect.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Bgra);
            pixelData = new byte[colorFrameDescription.LengthInPixels*4];
            //按照Bgra格式设定数据帧的描述信息(B:Blue,G:Green,R:Red,A:Alpha)
            // 1920*1080  彩色图像
            this.colorBitmap = new WriteableBitmap(colorFrameDescription.Width, colorFrameDescription.Height, 96.0, 96.0, PixelFormats.Bgr32, null);
            //根据数据帧的宽高创建colorBitmap的实例
            this.colorBitmapRect = new Int32Rect(0, 0, this.colorBitmap.PixelWidth, colorBitmap.PixelHeight);
            this.colorBitmapStride = this.colorFrameDescription.Width * 4;
            image.Source = this.colorBitmap;
            this.kinect.Open(); //启动kinect摄像头
        }

void colorFrame_FrameArrived(object sender, ColorFrameArrivedEventArgs e)
        {
            using (ColorFrame frame = e.FrameReference.AcquireFrame())
            //建立一个ColorFrame的实例frame保存送过来的帧,通过using保证走完函数后及时释放相应资源
            {
                if (frame != null)
                {
                    frame.CopyConvertedFrameDataToArray(this.pixelData, ColorImageFormat.Bgra);
                    for (int i = 0; i < pixelData.Length; i +=4) //看来bgra是占4位的
                    {
                        pixelData[i] = 0x00;//关闭蓝色通道
                       // pixelData[i + 1] = 0x00;//关闭绿色通道
                        pixelData[i + 2] = 0x00;//关闭红色通道
                    }
                    this.colorBitmap.WritePixels(this.colorBitmapRect, this.pixelData, this.colorBitmapStride, 0);
                }
            }
        }

开启之后效果如下(只留下绿色通道)

时间: 2024-10-11 11:30:56

kinect2.0 基础篇第一篇 用C#在Visual Studio上编写关闭彩色图像的三色通道的某个通道的相关文章

kinect2.0 基础篇第3篇 用C#在Visual Studio上编写把深度图像转换成彩色图像

本示例实现的功能有:有两个Radiobutton控件  选一个,点击启动按钮, 第一个是将深度图像转换成彩色图像 第二个是将深度图像做一些简单处理(例如太暗的调白一点) 涉及到一点遥感图像处理知识,将深度数据值转换为色调和饱和度 遥感图像处理那块不懂,有兴趣的自己可以研究研究,代码的基于kinect1的教程,慢慢尝试出来的,虽然功能实现了,但是原理还不是很懂 <Window x:Class="EnhancedDepthWPF.MainWindow" xmlns="htt

Python学习基础篇第一篇——快速入门(适合初学者)

一.Python学习基础篇第一篇--(快速入门) 建议从Python2.7开始学习,Python2.7可以支持扩展大量的第三方类库,是目前比较成熟的版本 编写代码的软件推荐将python自带的IDLE和PyCharm集成IDE结合起来使用 1.1 Python命令行 Python命令行将以 >>> 开始,比如 >>>print 'Hello World!' 对于验证简单的命令可以在python自带的IDLE中完成  1.2 在Python自带的IDLE写一段小程序 在所

Python自动化基础【第一篇】:目录

本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python自动化基础[第一篇]:目录 Python自动化基础[第二篇]:初识Python Python自动化基础[第三篇]:Python基本数据类型 Python自动化基础[第四篇]:Python基础之函数 Python自动化基础[第五篇]:Python基础之杂货铺 Python自动化基础[第六篇]:模块 Python自动化基础[第七篇]:面向对象 Python自动化基础[第

Android基础学习第一篇—Project目录结构

写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对的地方,希望大家给与指正. 2. 由于类似于读书笔记,可能格式神马的会比较随(hen)意(chou),大家看着受不了,可以使劲吐槽. *************************************我只是分割线***************************************

Node.js基础:第一篇

目录 第一章:Node.js概述 1.1-前端为什么要学习Node.js 1.2-后端开发要做什么 1.3-前端为什么选择Node.js 1.4-Node.js是什么 第二章:Node.js环境搭建 2.1-下载安装 2.2-安装常见问题 2.3-PATH环境变量 第三章:Node.js快速入门 3.1-Node.js组成 3.2-Node.js牛试小刀 3.3-Node.js全局对象global 第一章:Node.js概述 1.1-前端为什么要学习Node.js 能够和后端程序员更加紧密的配合

python基础巩固第一篇

---恢复内容开始--- 对于基础不是特别好的我最近开始学习python,想重新认识python这门语言,也算对自己的以后的路,做个台阶和总结记录. (一)学一门语言开始都是从计算机基础开始学起,自己一开始就想,学语言为什么要学计算机基础,都后面自己也明白了,(一)语言是在哪里运行的---计算机.(二)比如中国人和外国人说话要沟通是不是要通过一个介质去翻译双方的意思从而理解,其实目的都是一样的,学习一门语言开始之前就是就要通过计算机去翻译python所表达的意思,计算机则只能识别0和1这两个语言

python 基础篇第一篇

本节内容 1.python介绍 2.发展史 3.python2和python3 4.安装 5.简单程序,hello world程序 6.变量 7.用户输入 8.模块初识 9..pyc是什么? 10.数据类型初识 11.数据运算 12.表达式if...else语句 13.表达式for循环 14.break and continue 15.表达式while 循环 一.python介绍 python 的创始人为吉多.范罗苏姆.吉多.范罗苏姆为打发1989年年圣诞节而开发的一个小的脚本解释程序.是ABC

Angular JS 基础应用--第一篇

  前  言          Android应用开发中,有一些功能虽然能够使用原生JS来实现,但是会比较的复杂,因此一些相应的框架应运而生了.框架相对于原生JS而言,从主观上来说,最大的改变就是代码大幅度的减少了.在使用上,也比较方便易懂.因此,框架一经诞生就广受欢迎. 在本章,就将详细介绍其中一种框架的使用----Angular JS. AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. angularJS表达式   1.angularJS使用双大括号{

Linux基础知识----第一篇:Linux系统常识性了解(欢迎评论指正,随时保持更新)

1.ls -a命令,会列出当前目录下的所有内容(.cache,controller.py); 2..cache中.表示该文件是隐藏文件;controller.py中后缀py表示python脚本; 3.vi .profile表示编译.profile这个隐藏文件,其中文本内容#表示该行内容为注释; 4.00 03 * * * sh /root/refreshBondGoods/run.sh  >>  log.log,表示每天凌晨3点执行run.sh脚本,将日志自动输入到log.log文件中;(有关