In my lab there are some ImagingSource cameras that we use for detection. I was trying to get a model DMK 41BU02 to work so that I could control it directly from my measurement program and not have to use the crappy imaging software that comes with it.
Most USB cameras work with the OpenCV computer vision library without any trouble, and this is how I control them in my instrumentation library, which I wrote in Python. If they don’t work, then there is always an ActiveX interface which usually works.
The ImagingSource cameras, however, include their own driver library, IC Imaging Control. I tried to use SWIG to write a quick Python wrapper for it. However, you can only compile your program with this library if you use Visual C++. Fail!
Thankfully, this article (in German) on the blog of one Edgar Klenske tipped me off: the IC Imaging Control library is itself just a wrapper around DirectShow. That also explains why the headers only compile with VC++. Edgar Klenske’s solution is to use the VideoCapture module, which is itself a wrapper around DirectShow, which comes precompiled so you don’t have to use VC++. Luckily for me, he posted that tip just last week!
And so I was able to subclass my Camera module to interface with DirectShow cameras. Perhaps next I’ll try to install the new OpenCV 2.3 to see if their support for DirectShow has improved any.
My verdict is, never buy any camera from ImagingSource. Their slogan is, ironically, “Technology based on standards.” Sorry, but having your drivers only work with one compiler is more like a lack of standards — standards of both technology and decency.
The module seems to have moved to https://github.com/ptomato/REP-instrumentation/tree/master/rep/generic – thanks, I’ll check it out..
Also, http://code.google.com/p/tiscamera/ seems to have Linux drivers for some TIS cameras.
And, unicap also mentions TIS (2009): http://unicap-imaging.org/blog/index.php?/archives/24-New-driver-for-The-Imaging-Source-CMOS-cameras.html
Thank you so much! I was getting sick and tired of the ridiculously bad IC Capture, but had failed to figure out how to get access to the camera in Python. Now I can finally start programming a decent, clean interface and some filters to overlay the image with.
Also many thanks to Markus Gritsch for developing the library!
I didn’t have much luck with VideoCapture as it didn’t give access to the lower level camera commands.
To get around this I used this Python library instead, which directly talks to The Imaging Source DLL file and exposes low level camera functionality: https://github.com/morefigs/py-ic-imaging-control
Nice!