Introduction to the Kinect for Windows SDK Development (15) Advanced guidance

Source: Internet
Author: User
Tags wrapper

The previous article describes some of the things you need to know about the Kinect for Windows SDK advanced development, including image processing Coding4Fun the Kinect tool class library and how to build your own extension method class library for easy development. Next, we introduce some methods of using Kinect for close-range detection, which are limited to the reason of space, and only introduce three kinds of approaches to close-range detection.

This article will continue to describe how to detect motion in proximity detection, how to obtain and preserve the resulting image data, and then will introduce how to face recognition and some knowledge of hologram (Holograme), and finally introduce some class libraries and projects that are worthy of attention.

2.4 Motion recognition

At present, the use of motion recognition (motion detection) for close-up recognition is the most interesting way. The basic principle of realizing motion recognition is to set up a starting datum rgb image and then compare each frame image obtained from the camera with the datum image. If the difference is found, we can assume that something has entered the camera's field of vision.

It is not hard to see that this strategy is flawed. In real life, objects are moving. In one room, a person may move furniture slightly. In the outdoors, a car may start, and the wind may stagger some small trees. In these scenes, there is no continuous movement, but the state of the object has changed, according to the previous strategy, the system will judge the error. Therefore, in these cases, we need to periodically change the datum image to resolve this problem.

These tasks seem to require more powerful image analysis processing tools than the ones we've encountered before. Fortunately, the open source OpenCV library described earlier provides the ability to do some complex real-time image processing operations. OPENCV is a project launched by Intel Corporation in 1999 to add some advanced visual research results to the OPENCV library and contribute to the world's open source. 2008, a technology incubation company called Willow Garage is responsible for the renewal and maintenance of the project. Almost at the same time the EMGUCV project started, and he provided a. NET wrapper for OpenCV, which enabled us to use functions in the OpenCV library in the. NET environment. Below we will use EMGUCV to complete the motion detection as well as several subsequent demonstration projects.

The official website of the EMGUCV project is http://www.emgu.com/wiki/index.php/Main_Page the actual source code and installation package in SourceForge (http://sourceforge.net/ projects/emgucv/files/) on. The EMGU version used in this article is 2.3.0. EMGU installation process is simple and intuitive, only need to click to download a good executable file. One thing to note, though, is that EMGUCV seems to run best on a x86-architecture computer. If you are developing on a 64-bit machine, it is best to designate the target platform for the EMGU library as x86, as shown in the following illustration (you can also download the source code on the official web and compile it yourself on the x64 platform).

To use the EMGU library, you need to add references to the following three DLLs: EMGU.CV, Emgu.CV.UI, and Emgu.util. These DLLs can be found under the EMGU installation directory on my machine where the path is: C:\Emgu\emgucv-windows-x86 2.3.0.1416\bin\.

Because Emgu is one of the C + + class libraries. NET wrapper, you need to put some extra unmanaged DLLs in the directory where the DLL is located so that EMGU can find the DLLs to process. Emgu find these DLLs in the application's execution directory. If you are under Debug mode, look under the Bin/debug directory. In release mode, under the Bin/release directory. A total of 11 unmanaged C + + DLLs need to be placed under the corresponding directory, they are Opencv_calib3d231.dll, Opencv_conrib231.dll, opencv_core231.dll,opencv_ Features2d231.dll, Opencv_ffmpeg.dll, Opencv_highgui231.dll, Opencv_imgproc231.dll,opencv_legacy231.dll, opencv_ Ml231.dll, Opencv_objectdetect231.dll, and Opencv_video231.dll. These DLLs can be found under the EMGU installation directory. For convenience, you can copy all DLLs that start with opencv_.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.