自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

转载 模拟提交中multipart/form-data提交需要注意的问题

其实multipart/form-data上传数据的原理并不复杂,首先通过Content-Type字段指定提交的类型是multipart的,同时指定分隔符。比如:Content-Type: multipart/form-data; boundary=---------------------------7da2ced220a6a      而在提交的内容中,使用HTTP头中指定的分隔符,也

2013-10-21 09:56:37 2764

转载 c# 对cookie的简单操作

cookie结构:cookieName1=子键名称1=子键值1&子键名称2=子键值2声明一个cookie对象:HttpCookie cookie=new HttpCookie("MyCookie");//初使化并设置Cookie的名称newcookie.Expires = DateTime.Now.AddMinutes(10);cookie.Values.Add("userid",

2013-10-17 12:58:39 661

转载 c# 控制IE浏览器

想写一个桌面程序,用C#。程序运行后,会用IE打开指定的网页,并自动登录网站,再根据需要进行一些操作。关键是不知道怎么控制IE浏览器,请大家指点一下。相关内容如下:C#控制IE浏览器引入 C:\WINDOWS\System32\mshtml.tlb、Interop.SHDocVw.dll/// /// 返回指定Url的IE窗口下的 IHTMLDocume

2013-09-23 00:33:47 1205

转载 C# Internet Explorer DOM using ObjectFromLresult

Howdo, I've been working on this for a couple of days, I did a VB.NET example of this on a forum a few years ago, but C# presented me with a new challenge & it took a while to figure out.The Idea

2013-09-22 22:47:18 1572

转载 C#之HTML解析利器HtmlAgilityPack类库

1.下载HtmlAgilityPack.dll并将其添加引用到项目中,然后在代码中声明引用。 下载地址:http://www.codeplex.com/htmlagilitypack引用: using HtmlAgilityPack;  2.下载获取HTML页面的步骤和我上篇文章里介绍的差不多,都是先用WebClient或者WebReques

2013-09-19 15:54:53 2792

原创 html解析

private void button1_Click(object sender, EventArgs e) { byte[] buffer; WebClient webClient = new WebClient(); buffer= webClient.DownloadData(@"http://w

2013-09-19 13:34:10 591

转载 Kinect for Windows SDK开发入门(十五):进阶指引

本文接上文将继续介绍近距离探测中如何探测运动,如何获取并保存产生的影像数据;然后将会介绍如何进行脸部识别,以及介绍全息图(Holograme)的一些知识,最后介绍了一些值得关注的类库和项目。 2.4 运动识别     目前,利用运动识别(motion detection)来进行近景识别是最有意思的一种方式。实现运动识别的基本原理是设置一个起始的基准RGB图像,然后将从摄像头获取的每

2013-09-13 13:39:12 1750

转载 Kinect for Windows SDK开发入门(十四):进阶指引 上

Kinect for Windows SDK开发入门(十四):进阶指引 上本文将会介绍一些第三方类库如何来帮助处理Kinect传感器提供的数据。使用不同的技术进行Kinect开发,可以发掘出Kinect应用的强大功能。另一方面如果不使用这些为了特定处理目的而开发的一些类库,而是自己实现这些逻辑的话,代码可能会比较混乱和不稳定。本文只是简单的介绍这些第三方类库并给以适当的引导。Kinect开发最

2013-09-13 13:38:42 851

转载 Kinect for Windows SDK开发入门(十三):语音识别 下

Kinect for Windows SDK开发入门(十三):语音识别 下1. 使用定向麦克风进行波速追踪(Beam Tracking for a Directional Microphone)     可以使用这4个麦克风来模拟定向麦克风产生的效果,这个过程称之为波束追踪(beam tracking),为此我们新建一个WPF项目,过程如下:1. 创建一个名为KinectFin

2013-09-13 13:35:10 1074

转载 Kinect for Windows SDK开发入门(十二):语音识别 上

Kinect的麦克风阵列在Kinect设备的下方。这一阵列由4个独立的水平分布在Kinect下方的麦克风组成。虽然每一个麦克风都捕获相同的音频信号,但是组成阵列可以探测到声音的来源方向。使得能够用来识别从某一个特定的方向传来的声音。麦克风阵列捕获的音频数据流经过复杂的音频增强效果算法处理来移除不相关的背景噪音。所有这些复杂操作在Kinect硬件和Kinect SDK之间进行处理,这使得能够在一个大

2013-09-13 13:34:38 1299

转载 Kinect for Windows SDK开发入门(十一):手势识别 下:基本手势识别

1. 基本的手势追踪     手部追踪在技术上和手势识别不同,但是它和手势识别中用到的一些基本方法是一样的。在开发一个具体的手势控件之前,我们先建立一个可重用的追踪手部运动的类库以方便我们后续开发。这个手部追踪类库包含一个以动态光标显示的可视化反馈机制。手部追踪和手势控件之间的交互高度松耦合。    首先在Visual Studio中创建一个WPF控件类库项目。然后添加四个类: Kin

2013-09-13 13:32:07 1293 3

转载 Kinect for Windows SDK开发入门(十):手势识别 上:基本概念

Kinect for Windows SDK开发入门(十):手势识别 上:基本概念像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的核心那样,手势(gestures)是Kinect应用程序的核心。和图形用户界面中的数字交互不同,手势是现实生活中存在的动作。如果没有电脑我们就不需要鼠标,但是没了Kinect,手势依然存在。从另一方面讲,手势是日常生活中人与人之间相互交流的一部

2013-09-13 13:31:15 1257 1

转载 Kinect for Windows SDK开发入门(九):骨骼追踪进阶 下

Kinect for Windows SDK开发入门(九):骨骼追踪进阶 下1. 基于景深数据的用户交互  到目前为止我们只用了骨骼数据中关节点的X,Y值。然而Kinect产生的关节点数据除了X,Y值外还有一个深度值。基于Kinect的应用程序应该利用好这个深度值。下面的部分将会介绍如何在Kinect应用程序中使用深度值。    除了使用WPF的3D特性外,在布局系统中可以根据深度值来

2013-09-13 13:30:20 783

转载 Kinect for Windows SDK开发入门(八):骨骼追踪进阶 上

Kinect for Windows SDK开发入门(八):骨骼追踪进阶 上Kinect传感器核心只是发射红外线,并探测红外光反射,从而可以计算出视场范围内每一个像素的深度值。从深度数据中最先提取出来的是物体主体和形状,以及每一个像素点的游戏者索引信息。然后用这些形状信息来匹配人体的各个部分,最后计算匹配出来的各个关节在人体中的位置。这就是我们之前介绍过的骨骼追踪。红外影像和深度数据对于K

2013-09-13 13:27:47 1412

转载 Kinect for Windows SDK开发入门(七):骨骼追踪基础 下

Kinect for Windows SDK开发入门(七):骨骼追踪基础 下1. Kinect连线游戏     相信大家在小时候都做过一个数学题目,就是在纸上将一些列数字(用一个圆点表示)从小到大用线连起来。游戏逻辑很简单,只不过我们在这里要实现的是动动手将这些点连起来,而不是用笔或者鼠标。    这个小游戏显然没有第一人称射击游戏那样复杂,但如果能够做成那样更好。我们要使用骨骼追

2013-09-13 13:26:44 781

转载 Kinect for Windows SDK开发入门(五):景深数据处理 下

1. 简单的景深影像处理    在上篇文章中,我们讨论了如何获取像素点的深度值以及如何根据深度值产生影像。在之前的例子中,我们过滤掉了阈值之外的点。这就是一种简单的图像处理,叫阈值处理。使用的阈值方法虽然有点粗糙,但是有用。更好的方法是利用机器学习来从每一帧影像数据中计算出阈值。Kinect深度值最大为4096mm,0值通常表示深度值不能确定,一般应该将0值过滤掉。微软建议在开发中使用1220

2013-09-13 13:22:41 1262

转载 Kinect for Windows SDK开发入门(六):骨骼追踪基础 上

Kinect产生的景深数据作用有限,要利用Kinect创建真正意义上交互,有趣和难忘的应用,还需要除了深度数据之外的其他数据。这就是骨骼追踪技术的初衷,骨骼追踪技术通过处理景深数据来建立人体各个关节的坐标,骨骼追踪能够确定人体的各个部分,如那部分是手,头部,以及身体。骨骼追踪产生X,Y,Z数据来确定这些骨骼点。在上文中,我们讨论了景深图像处理的一些技术。骨骼追踪系统采用的景深图像处理技术使用更复杂

2013-09-13 13:20:47 1641

转载 Kinect for Windows SDK开发入门(四):景深数据处理 上

Kinect for Windows SDK开发入门(四):景深数据处理 上Kinect传感器的最主要功能之一就是能够产生三维数据,通过这些数据我们能够创建一些很酷的应用。开发Kinect应用程序之前,最好能够了解Kinect的硬件结构。Kinect红外传感器能够探测人体以及非人体对象例如椅子或者咖啡杯。有很多商业组织和实验室正在研究使用景深数据来探测物体。    本文详细介绍了Kinec

2013-09-13 13:17:45 1023

转载 Kinect for Windows SDK开发入门(三):基础知识 下

1. 性能改进    上文的代码中,对于每一个彩色图像帧,都会创建一个新的Bitmap对象。由于Kinect视频摄像头默认采集频率为每秒30幅,所以应用程序每秒会创建30个bitmap对象,产生30次的Bitmap内存创建,对象初始化,填充像素数据等操作。这些对象很快就会变成垃圾等待垃圾回收器进行回收。对数据量小的程序来说可能影响不是很明显,但当数据量很大时,其缺点就会显现出来。    改

2013-09-13 13:15:46 988

转载 Kinect for Windows SDK开发入门(二):基础知识 上

Kinect for Windows SDK开发入门(二):基础知识 上1. Kinect传感器    基于Kinect开发的应用程序最开始需要用到的对象就是KinectSensor对象,该对象直接表示Kinect硬件设备。KinectSensor对象是我们想要获取数据,包括彩色影像数据,景深数据和骨骼追踪数据的源头。本文将详细介绍ColorImageStream,后面的文

2013-09-13 13:14:03 1239

转载 Kinect for Windows SDK开发入门(一):开发环境配置

Kinect for Windows SDK开发入门(一):开发环境配置首先来看一下Kinect设备: 1. Kinect设备黑色的Kinect设备如下图:基座和感应器之间有一个电动的马达,通过程序能够调整俯仰角度,在上面的感应器中有一个红外投影仪,两个摄像头,四个麦克风和一个风扇。打开外面的盖子可以看到里面的构造:这些感应器用来捕捉RGB和深度数据,面对Kinect,从左往右

2013-09-13 13:12:00 9995

转载 C#多线程学习(三) 生产者和消费者

前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如

2013-09-12 13:32:40 463

转载 C#多线程学习笔记之(abort与join配合使用)

2012-2-18 08:56| 发布者:benben| 查看: 3013| 评论: 0摘要: 今天刚开始学多线程,尽管以前用过一点点,但是只是照着网上代码抄,没有真正理解,现在回过头来想研究研究,慢慢弄懂,下面就是我在网上所找资料的例子,相信大家都看过,做了小点改动View Code 1 namespace 多线程 ...   今天刚开

2013-09-12 13:24:38 791

转载 C#多线程学习(二) 如何操纵一个线程

下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。 打开

2013-09-12 12:54:37 502

转载 C#多线程学习(一) 多线程的相关概念

什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执

2013-09-12 12:51:44 557

转载 Lambda表达式

lambda表达式是对匿名方法的一种改进,具有更加简洁的语法和更易理解的形式,lambda表达式可以包括表达式和语句,并且可以用与创建委托或表达式目录树类型。lambda表达式都使用Lambda运算符=>,读作goes to。该Lambda运算符的左边是输入参数,右边包含表达式或者语句块。Lambda表达式的声明:(参数列表)=>{方法体}其中的参数列表和普通方法的参数列表

2013-09-04 20:00:18 421

原创 在.net平台中调用WIN32api函数

.NET平台中的dll都是具有“自描述性”,里面具有哪些函数都已经写进它自己的metadata里了,因此不需要再来一个.h头文件。.NET平台上的C#语言来调用Win32平台上的dll文件需要用到DllImport特性。一、举例说明using System;using System.Runtime.InteropServices; //使用之前必须添加这个引用class Program

2013-09-04 12:31:18 1569

转载 基础知识--确定本机到另外一台机器中路由器的个数

怎么确定本机到另外一台机器中路由器的个数:使用ping命令中的TTL大概可以判断,一般TTL默认值是64,128,每经过一个路由器减1,比如pingwww.baidu.com大概经过的路由器为:64-52 = 12使用tracert命令可以获取经过的路由器。tracert的命令使用如下:我们可以使用tracert -d www.bai

2013-09-04 12:12:38 780

原创 kinect编程(二):添加事件处理,捕捉数据

如果Kinect设备启动后,它能捕捉视频、音频和深度数据,并且还能根据深度数据生成骨骼数据,Kinect能通过数据流的方式给你的应用程序提供数据。NUI API能让你通过编程的方式控制和访问全部的四种数据流。为了防止掉帧,要保证你的程序能够对Kinect输出的每一帧数据进行及时的处理。当初始化NUI API时,应用程序需要完成以下工作:1、确认需要输出哪种数据流。2、打开想要输出的数据流。

2013-09-02 17:17:46 1378

原创 kinect编程(一):初始化、启用kinect设备

Kinect有啥好玩的1、通过骨骼追踪来识别和追踪运动的人。2、通过深度数据来计算物体和传感器之间的距离。3、通过声音和回声来捕捉声音确定声音的来源。4、语音识别引擎可以识别命令语言,可以使程序变成声控的。一、遍历和启动kinect因为一个电脑最多支持4个kinect,我们必须遍历找到这些kinect并启动这些设备。KinectSensor这个类就代表设备本身,当我们声

2013-09-02 17:12:32 3312

转载 IEnumerator和IEnumerable区别

IEnumerable接口和IEnumerator接口是.NET中非常重要的接口,二者有何区别?    1. 简单来说IEnumerable是一个声明式的接口,声明实现该接口的类就是“可迭代的enumerable”,但并没用说明如何实现迭代器(iterator).其代码实现为:         public interface IEnumerable         {

2013-08-30 13:31:17 1198

原创 wpf中利用布局动态添加控件

public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { Random random = new Random(); //增加行列10*10 for (

2013-08-29 21:03:02 1845

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除