I put together a script to perform a 3-Channel overview window.
4 buttons, 3 for channels and 1 to crop. 3 dropdowns showing available
presets from a predefined group, to assign a preset to each channel button.
Pressing on of the channel buttons, snaps an image, pushes it to one of the
quadrants of an Image canvas, 4times the size of the camera resolution. Also
places a second copy in the bottom right quadrant to show an overlayed view.
The images is tagged with channel axis position.
Crop button crops out the original camera resolution from the overview image
The issue I am facing...
The crop processor crops, but can't seem to do it across the channels. The
resulting image has the first channel across all the channels. Any advise?
thanks in advance!
Looking forward to figuring out...
how to make this into a plugin.
how to accomplish the same with images from Live stream.
That is a beautiful hack! Really cool how the MM channel sliders
continue to operate on the overview window that you created! There is
something funky going on for me, with the channel names and colors
changing when I press the Ch1, 2, or 3 button, hope that can be
mitigated. There is of course a penalty in memory usage and performance
by creating images ~4x as large as needed for each channel, but that
should be fine in the beginning.
As for the crop ("Extract!") button, Micro-Manager does not use an
ImagePlus with ImageStack behind the scene, so your Duplicator command
there does not do what you think it should do.
I would keep a 3 channel Micro-Manager RewritableRAMDatastore as a
global, insert the images you acquire in that store, and then display
that store whenever someone presses the "Extract" button. That allows
the user to save the data in their original format, and - using the gear
icon - also to export to ImageJ as your code does.
Any hints as to why the use of mm.getCore().snapImage() in this script would
reset the exposure time to the lowest exposure time before this snap
function is called? Same is reproduced if I use mm.live().snap(false)
If I run either of these snap functions just like that to check its
behavior, it does work as it should be.
On 5/11/2020 3:57 AM, Amit Cherian wrote:
> Any hints as to why the use of mm.getCore().snapImage() in this script would
> reset the exposure time to the lowest exposure time before this snap
> function is called? Same is reproduced if I use mm.live().snap(false)
> If I run either of these snap functions just like that to check its
> behavior, it does work as it should be.
Did not see the script, so going blind here, but is it possible that you
set a Configuration (Channel) before and that this config contains an
exposure time, or that you have the option "Sync exposure between Main
and MDA windows" checked?
On 5/13/2020 6:57 AM, Amit Cherian wrote:
> I do set a Configuration (Channel) before calling the snap function, but the
> exposure time is not a property for the Channel group. The "Sync exposure
> between Main and MDA windows" is checked.
Uncheck, and the issue will most likely go away...