|
Hello, I am working with a Labview wrapper of Micromanager. I need to acquire images as fast as possible from a QuantEM. As I understand it, this should be done by streaming the images into micromanager and then reading from the circular buffer, but I can only figure out how to do this by acquiring X images and then reading them out after they have been acquired. This is not possible for my application as I need to acquire 500 images and review them as the images are taken. Is there a way to set the camera into streaming mode and then read out the images as they are created? Thank you Brian ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Administrator
|
Hi Brian,
> I am working with a Labview wrapper of Micromanager. I need to acquire images as fast as possible from a QuantEM. As I understand it, this should be done by streaming the images into micromanager and then reading from the circular buffer, but I can only figure out how to do this by acquiring X images and then reading them out after they have been acquired. This is not possible for my application as I need to acquire 500 images and review them as the images are taken. Is there a way to set the camera into streaming mode and then read out the images as they are created? I wrote the Beanshell script copied below as an example. Most of it deals with getting the images into the Micro-Manager viewer and you will not care about it. The important part is: mmc.startSequenceAcquisition(nrFrames, 0, false); while (mmc.getRemainingImageCount() > 0 || mmc.isSequenceRunning(mmc.getCameraDevice())) { if (mmc.getRemainingImageCount() > 0) { img = mmc.popNextImage(); // do whatever you want with the image } } Note that mmc.startSequenceacquistion() is non-blocking, so you should have no trouble analyzing the images as they are acquired. Hope this helps! Nico /* * Script to show how to use Sequence acquisition */ // file locations acqName = "test-Burst"; rootDirName = "C:/acquisitionData"; // Number of timepoints nrFrames = 50; // clear all previous acquisitions gui.closeAllAcquisitions(); gui.clearMessageWindow(); gui.openAcquisition(acqName, rootDirName, nrFrames, 1, 1); long width = mmc.getImageWidth(); long height = mmc.getImageHeight(); long depth = mmc.getBytesPerPixel(); gui.initializeAcquisition(acqName, (int) width, (int) height, (int) depth); exposure = mmc.getExposure(); binning = mmc.getProperty(mmc.getCameraDevice(), "Binning"); mmc.startSequenceAcquisition(nrFrames, 0, false); frame = 0; now = System.currentTimeMillis(); while (mmc.getRemainingImageCount() > 0 || mmc.isSequenceRunning(mmc.getCameraDevice())) { if (mmc.getRemainingImageCount() > 0) { img = mmc.popNextImage(); gui.addImage(acqName, img, frame, 0,0); frame++; } } itTook = System.currentTimeMillis() - now; mmc.stopSequenceAcquisition(); gui.message("Acquisition took: " + itTook + " milliseconds"); ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
| Powered by Nabble | See how NAML generates this page |
