Posted by
Nico Stuurman-4 on
Mar 06, 2008; 5:03pm
URL: http://imagej.273.s1.nabble.com/save-as-jpg-tp3696972p3696978.html
Hi Joachim,
> Exactly, I myself are now planning for already some time to write an
> Image
> Acquisition plugin for the Matrox MIL,
> so that it should work with a large number of different
> framegrabbers and
> hence cameras
> (however, too busy with other things).
>
> One problem that considerably "slows down" the development process
> is that
> I have not yet come down with
> a good (minimum) set of generic functions such a plugin should
> support and
> how. Also, in many cases, some
> possibility to - if needed - also have a "live" preview window (likely
> within a second thread) with buttons etc. without
> too much extra programming would be very nice too.
>
> While I also see the absolute need for full "remote control", there
> definitely MUST not be a obligatory TWAIN window
> that pops up for every image that you want to grab.
>
> So my point here is, could we, the people working or interested in
> such
> plugins probably agree on a common standard
> of ImageJ callable methods and the corresponding functionality to base
> future plugins on? This would help me, other
> users (that again built grabbing plugins based on those standards) and
> manufacturers like Wayne Brown.
>
> Any suggestions how to start this?
These were exactly the kind of problems we tried to address in our
Micro-Manager (
http://micro-manager.org) project. Thus, we developed
a simple, minimal API for a few device types commonly used in
microscopy (cameras, stages, state devices, shutters, communication
ports) and allowed for infinite extensions through 'Properties'. This
mechanism ensures that any camera will expose the same, common, set of
capabilities to the API but can also expose anything else it finds
useful.
Anything that can interface with the Micro-Manager Core (which
includes our own GUI that is an ImageJ plugin, but can also be other
ImageJ plugins, beanshell scripts, matlab scripts, or - in principle -
other scripting languages like for instance Python) can use this API
to interface to all the different hardware for which a Micro-Manager
'adapter' (the code interfacing between the device or device driver
and the Micro-Manager Core) exists (for a list see
http://valelab.ucsf.edu/~nico/MMwiki/index.php/Device_Support)
.
The Micro-Manager GUI has a live preview window, live histogram, ROI
tool, auto-shutter, and also has facilities for setting up time-
lapses, z-stack, multi-channel images, multi-position images and live
split view mode. We are about to add a better programmatic interface
to these more advanced features, making it easy to script your own
multi-dimensional acquisition.
So, writing a Micro-Manager adapter for the Matrix MIL card (or for
Apogee cameras) will instantly yield all this functionality and let
anyone integrate this camera/frame grabber card into a complex
microscope set-up. Writing these adapters is quite straight forward,
in part because there are many examples, in part because they are
written in C++ which usually interfaces easily with the device SDK
(the JNI step is taken care of by Micro-Manager at a higher level) and
allows for debugging/testing in a C/C++ only environment.
Best regards,
Nico Stuurman
>
>
> Mit freundlichen Grüßen / Best regards
>
> Joachim Wesner
> Projektleiter Optik Technologiesysteme
>
> Leica Microsystems CMS GmbH | GmbH mit Sitz in Wetzlar | Amtsgericht
> Wetzlar HRB 2432
> Geschäftsführer: Dr. Stefan Traeger | Dr. Wolf-Otto Reuter | Dr.
> David Roy
> Martyr | Colin Davis
>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit
http://www.messagelabs.com/email> ______________________________________________________________________