I've been developing with kinect XBOX 360 for a while.
Today, after connecting a different kinect device (XBOX 360) i've started getting an error
on the initalization line:
kinect.Initialize(RuntimeOptions.UseSkeletalTracking | RuntimeOptions.UseDepthAndPlayerIndex | RuntimeOptions.UseColor);
The error I was getting:
Failed in native DLL. HRESULT=0x8004022b.
and the stack trace showed:
at Microsoft.Research.Kinect.Nui.SkeletonEngine..ctor(Runtime mainNui, CINuiInstanceHelper nuiInstance)
I've already tried :
Reinstalling all kinect related drivers and restarting.
Switching back to the old kinect sensor I was using.
Reinstalling the kinect sdk (the version i'm using is : Microsoft
Kinect 1.0 Beta2 SDK v.1.0.0.45
The following link - http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/thread/5b9ffac3-86c0-4147-a6c7-f8e4bbc73c56 - talks about finding the registry key but I couldn't understand how to do it.
According to this link - http://msdn.microsoft.com/en-us/library/ms919477.aspx this is an error code:
VFW_E_SAMPLE_REJECTED This sample cannot be rendered. 0x8004022B 555
is there a way I could use it to solve the problem?
I'm running win7 64 bit.
Try using the Kinect for Windows SDK 1.5. It's been out for a couple of weeks now.
The API should mostly be the same as in 1.0 beta, but you will have to change the names of some namespaces when using them.
Also, you will still be able to use the Kinect for Xbox360 for development purposes, unless you want to use near mode for depth acquisition.
Like Chris Ortner said, you should switch to the full version as it is much more efficient. You can find it here. If you are fearing that you must convert all of your code, look here and here. If you are worried about converting code like getDisplayPosition, see Converting Kinect Methods from Beta 2, to Version 1. If you need any more help converting, just ask! Hope this helps!
I had this error. It was nothing to do with drivers or versions.
The Kinect sensor uses a lot of the USB bandwidth, so it is essential to have it on its own USB controller. Try the different USB ports until it works. You can use the Device Manager to see which devices are on which controllers: View > Devices by connection.
Thanks a lot for your help.
I prefer not to change to kinect for windows to timelines.
I was able to solve this issue thanks to this link which worked like a charm.
The steps to resolve this issue were:
1.Uninstall all kinect drivers from all the USB ports.
2.Uninstall the kinect sdk.
3.Reinstall the Kinect SDK.
4.Disabled network adapter.
5.Plug in the kinect sensor.
The idea is to reinstall all the drivers and prevent it from obtaining drivers from Windows Update.
I appreciate your help.
Thanks,
Oded
Related
Hopefully someone can point me in the right direction. After spending many hours fighting this I am at my wits end. At this point I am just trying to get the EMGU example applications to run.
Just the facts ...
Applications hang at the line "_capture = new VideoCapture();"
All other versions of EMU were uninstalled
I am using the latest version of EMGU (3.2.0.2682)
No error message or exceptions are displayed
I am using a webcam, logitech C615
Camera works with logitech software
Using a coworker's computer the camera worked after a fresh install of EMGU
Any example program that uses VideoCapture also just hangs the app
The app I am focusing on is C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Example.CameraCapture.exe
Attaching a debugger provided no useful information
Once the applications are started the only way to kill them is to restart the pc
Other EMGU applications like faceDetection work just fine
List of running processes
I have a feeling it has something to do with a driver conflict, a library issue, or camera format issue. Any suggestions on how to troubleshoot this?
Turns out it was a conflict with a black magic video recorder device. I removed the card from the PC and everything started working. What a headache ...
NickJ, if there is a driver conflict it is not in EmguCV. Emgu CV includes no driver or drivers that might cause conflicts with a Camera. It only use existing drivers through OpenCV, which uses platform drivers to read camera stream or video files.
I long ago quit using EmguCV/OpenCv to handle my video capture. I found that these SDKs performed wonderfully at computer vision application and less wonderfully at capture.
I know people use them for capture and some have success but judging by the number of posts on SO asking about video capture I would suggest most have issues.
As for your specific problem I would be wondering how so many copies are getting started. You could download OpenCV, build it and debug through the code to see what is going on.
Doug
I am doing my project regarding image processing in c#. Here I don't know, how to find face, eyes from image (not webcam). The image will be stored in a specific folder. I am installing EmguCv package, but it not at all work. What are my questions means,
Is Emgu CV works Window 8 OS?
I am searching via net, all the contents are related to find face through webcam. But I want to find a face from photo/image. Please tell the solution.
Which is compatible image processing library for windows 8 and Visual Studio 2010?
Is there any source code satisfies my certain condition. Please post here.
Thank you.
You can use an SDK. Aforge should be what you need. Try looking at some of the examples provided from their own source code to point you in the right direction.
As far as I am concerned EmguCV is a dot-net port of famous library named OpenCV with good reliability that you can count on it and do your project.What's more, thanks to its nature which is a library (dll) you could easily use it in your project and run wherever CLR is running, including windows 8 OS.
I am developing a project that involves creating a product composed of hardware and software that enables interaction with various features.
I'm still in the testing phase , however , is sent to the brain of this product is a mini computer ODROID U3 , running Xubunto 13.10.
In addition to other components , I want the system refer to the use of the Kinect , or any other similar , however , for the test phase only own a Kinect.
I'm more accustomed to the language C # ( . NET ) , I used in windows environment with Visual Studio and did some games in Unity3D . The MonoDevelop looks very interesting alternative for Linux , and I'm currently testing it.
Well, as you may have noticed, I 'm new at this , and I have not much knowledge in Linux , MonoDevelop as well as Kinect , and I'm having some doubts .
I'm already trying to put the Kinect running on Linux for two days and the results are not very encouraging , installed libfreenect , nite , OpenNI and sensorKinect , but so far , the closest I got was to run one or two samples , not all work . Maybe I'm not doing things correctly ...
So loved your help , opinion or tip the following:
What is the best way to install and recognize the Kinect on Linux ?
Is it possible to run applications on computers Kinect ARM architecture ?
It is possible to develop applications for Kinect on Linux , with c# ?
Is it possible to do this with MonoDevelop ? If yes, how to install or use the wrapper for this purpose?
Does Microsoft user therms allow us to use Kinect on a different operating system, and sell a product with it?
Any help is welcome, and I want to thank the community already;)
Greetings.
This may be a late reply but better late than never.
What is the best way to install and recognize the Kinect on Linux?
If you have a choice please opt for libfreenect (aka OpenKinect). It access the sensors at much lower level. If you have to go with OpenNI you must install SensorKinect driver as well.
Is it possible to run applications on computers Kinect ARM architecture?
Yes. Both OpenNI+Sensor Kinect and libfreenect work just fine on ARM architectures.
It is possible to develop applications for Kinect on Linux , with c#?
Yes. Check Mono. However, I do not trust the C# performance on linux/android. I never did on Windows either. On such a complicated platform I'd recommend Python wrappers. OpenNI has a mono wrapper and libfreenect does not. I think wrapping libfreenect into a mono wrapper is not that difficult considering they did it for Matlab.
Is it possible to do this with MonoDevelop? If yes, how to install or use the wrapper for this purpose?
Yes. 1) install dependancies (libusb, opengl, freeglut). 2) Clone and build OpenNI from github. 3) Clone and build SensorKinect from github.
PS. In OpenNI and SensorKinect folder edit Platform/Linux/Build/Common/Platform.Arm and comment out the "-mfloat-abi=softfp" CFLAG. This is essential when you build on ARM architecture since the processor has an FPU and is using hard floating point.
Does Microsoft user therms allow us to use Kinect on a different operating system, and sell a product with it?
As far as I know the answer is "Yes" (at least for Kinect 1). The Kinect sensor is an open architecture founded by PrimeSense (Apple bought this company now). Asus and other manufacturers relased several verisons of the same sensor. They are all supported by OpenNI. As for libfreenect support, you should keep an eye on the git hub users.
Is there any Solution from another vendor? (With another Camera?)
Canon does not want to support the SDK anylonger.
The Solution shoul contain live preview, zooming and configurable Flash. A c# interface would be fine.
I know, the WIA interface but it isnt powerful enough.
Have you looked into gphoto2? This only runs under Unix-like systems (Linux, BSD, and probably MacOS), so it may not help under Windows.
There's a growing group of Canon SDK users at http://canonsdk.com 1 that may help you navigate Canon camera issues and overcome Canon's lack of support.
1 Does not exist any more.
Canon has stated that they will no longer support the powershot sdk. But the EOS SDK will continue to be supported. You will need to buy EOS Cameras, but there are some in the same price range as the Gx powershots.
Another answer mentions gphoto2 however this won't work if your camera is a recent Canon PowerShot model.
This page has a listing of the cameras for which gphoto2 does and does not support remote control / capture: http://www.gphoto.org/doc/remote/
Here is Canon's complete listing of cameras with their SDK compatibilities:
http://www.usa.canon.com/cusa/consumer/standard_display/sdk_homepage
As stated in the question, Canon has decided to stop supporting the SDK so their newer PowerShot cameras won't work. For a recent project I found an older supported (S70) on eBay for a reasonable price.
How can I use WIA and Twain in C#? The TWIAIN/C# example found at http://www.codeproject.com/KB/dotnet/twaindotnet.aspx Throws an exception at line 59 on TwainLib.cs "an attempt was made to load a program with an incorrect format." on Vista 64.
I would use WIA but it does not have support for all of the devices I want to use.
Is there a simple way to enable TWAIN support in WIA in C#? I know it can be done but I cannot find any documentation on the subject. I am not looking for a commercial product. I can figure out how to use WIA just fine - but its the fact that I cant enable TWIAN support that is annoying.
Examples in C++/CLI or VB.net are also welcome.
Thanks.
EDIT
Thanks, cristianlibardo. You helped me out a lot and I might just continue to use TWIAN for now. But I am still wanting to use WIA; so I will not accept your answer yet. Here is some more info for people just seeing this post. All are in response to this answer:
Yup, that did it for the TWIAN support; thanks! I still want to use WIA though; but now I have something to work with. However, when I select my USB camera as the source and hit acquire, the app hangs. My camera works on other, commercial, TWIAN applications.
By commenting out the lines 100 though 104 (code that checks to see if "DScap( appid, srcds, TwDG.Control, TwDAT.Capability, TwMSG.Set, cap );" returns TwRC.Success my Camera now works. I have no idea what this code does; as documentation is next-to-nothing on this subject.
OK; its a const called "CAP_XFERCOUNT" that has something to do with scanning multiple images per session. Makes seance that a camera would not support it.
Probably a long shot but have your tried building with x86 as platform target or changing thread apartment state?