Canon Remote SDK Alternative? - c#

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.

Related

How can I show an MP4 video inside a Winforms application without the need for installing missing codecs?

We're currenty building a little company presentation application for USB sticks that is used to display PDF files regardless of any PDF reader installed on the system. That works quite well, so we now also want to show videos directly inside the application. As we cannot ensure that the customers system is able to play the video file, I'd like to include everything that is neccessary to play the video regardless of the system configuration.
Before I reinvent the wheel - is there a preferred way to do so? Would another video format offer more possibilities? The target OS is supposed to be Windows XP up to Windows 8 and .NET 2.0. Is there any framework/assembly that I could use to become independent of any prerequisites on the target system? Thanks for your recommendations and thoughts on this!
Playing videos requires software to transform the video data into moving images. Unless you want to take on the mammoth task of writing your own MP4 decoder, you'll have to rely on what the user has installed.
Wikipedia lists Windows Media Player versions here. Version 12 is the only one to support MP4 out-of-the-box. That means your Windows XP and Vista users are going to need a third-party codec.

Linux + ARM + KINECT + C# + MonoDevelop, is that possible?

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.

Kinect Initialization error (Failed in native DLL. HRESULT=0x8004022b.)

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

Image Capture in C#

I'm working on a home project that involves comparing images to a database of images (using a quadrant - or so - histogram approach). I wanted to know what my options are in regards to web cams or other image capture devices that:
Are easy to work with with the
Windows SDK (particularly
DirectShow, which I plan to use
with C#)
Have drivers for both
64-bit and 32-bit Windows Vista (and
Server 2008)
I'm asking primarily so I can avoid pitfalls that other people may have experienced with web cams and to see if there are other image capture devices (or C# usable APIs) available that I should look at. I suspect that any old web cam will do but I'd rather be safe than sorry.
If you only want images, many web cams support TWAIN -- you can use with .NET using this code
http://www.codeproject.com/KB/dotnet/twaindotnet.aspx
I'm doing something very similar with webcams and have found that logitech and Microsoft branded webcams work just fine with DirectShow.
I've also found that many NEW webcams don't support twain, and WIA support for doing live captures has been removed in Vista, and doesn't exist in 2000, so Directshow has been the only thing that seems to work reliably accross OS's.

Compact Framework : any Finger Friendly GUI?

i m developing a little tool on my Pocket PC using WM6 SDK but i would like to implement a finger friendly user interface (iphone-like).
So i m looking for a free .NET framework that offers the possibility to easily integrate a finger friendly interface for Windows Mobile 6 Pro .
Any ideas ?
EDIT : Finger friendly means big icons, big buttons , scrollable screens with a simple touch of the thumb... Because the Winforms in Compact framework are made for the stylus, not fingers !!
I know of no such interface API.
I would code such an interface from scratch, overriding Paint and mouse events. If you need more fancy drawing tools that compact framework provides, you should look for pinvoke to access GDI+.
You should really check out Resco's MobileForms Toolkit 2009.
I bet their controls are exactly what you are looking for. Plus they have a whitepaper and videos to show off the controls.
I am not sure it is what you are looking for (I didn't have time to examine it yet myself, but I definately intend to); this UI Framework looks interesting:
http://code.msdn.microsoft.com/uiframework
Check out the Fluid windows mobile controls available at http://fluid.codeplex.com/
This might be what you are looking for, and its open source.
Any current readers on this thread should check out SlideUI (http://www.devslide.com/products/slideui). It's a current (and supported) product which offers touch friendly (iphone-like) scrolling and controls.
I'm not entirely sure what you're asking here... Windows Mobile 6.0 Pro is touch-screen enabled, so you should simply have to create your project targeting the Windows Mobile 6.0 Pro (note, however, that your application will not be compatible with Windows Mobile 6.0 Standard devices).
I know exactly what you are talking about. All the .NET Controls are designed for the stylus. When you make them bigger for the finger, there is no guarantee they will respond well. Add to that every hardware devices sensitivity is different and its even harder.
I recently built an application attempting to incorporate some touch like functionality. it was a pain having hand code all this stuff.
The problem with a 3rd party library, as opposed as coming in Windows MObile is then everyone is designing their own library and navigation techiques. Hopefully MS will wise up on this front.
http://sites.google.com/site/nebowiki/
If you are developing finger friendly apps, your target device needs a process to handle finger input as opposed to the stylus. HTC devices (Such as the Kaiser, Mogul, Touch Pro, etc.) use TouchFlo for this purpose. There are a few different versions of TouchFlo and I'm not sure if there is an SDK, but you need to incorporate it into whatever you program. xda-developers.com will have lots of info about it.
It IS amazing that with WM6.1 Pro, .NET CF 3.5 and VS2008 that all we have available are the basic stylus-sized controls that are are spartan in the extreme. i.e., coyote-ugly. I'm about ready to chew my hand off rather than use them in an app.
So where is the third-party collection of controls that all WM developers are flocking to, to provide touch-friendly apps?
Ugly is truly the correct word for most (mine included) mobile win apps.
I am developing for an older piece of hardware with a mono screen which makes it even worse.
Take a look here:
http://www.windowsfordevices.com/news/NS9328208835.html
and here:
http://msdn.microsoft.com/en-us/library/dd630622.aspx
This is not free, but it is affordable - some of the screen shots are pretty nice looking:
http://www.basic4ppc.com/?gclid=CIiO1di1nJoCFRAhDQodYX8-9A
Anyway...sorry if this was just googledragging - maybe it had something you had missed.
--Joe
Finger Freindlyness is a result of the touch screen technology (capacitive screens are less accurate, but require zero pressure; resistive screens require physical pressure and are harder to swipe, flick, etc.)
With Windows Mobile 6.5, they have introduced a system gestures library (and if you'd rather not have to P/Invoke it, there is a sample wrapper on MSDN Code Gallery). Theoretically, it would be possible to write to this new library, and maybe emulate the gestures on pre-WM6.5 devices, if required.

Categories

Resources