Re: Issues with real-time display in ImageJ

Posted by Wayne Rasband-2 on
URL: http://imagej.273.s1.nabble.com/Issues-with-real-time-display-in-ImageJ-tp5022793p5022802.html

> On Dec 18, 2019, at 9:42 AM, Mark Rivers <[hidden email]> wrote:
>  
> - When images are arriving quickly the cursor x, y, and value numbers in the main ImageJ window do not track the cursor in the image window correctly.

In an attempt to reproduce this problem, I updated the Help>Examples>JavaScript>Terabyte VirtualStack example in the ImageJ 1.52t14 daily build so that, when the stack is animating, it displays the cursor location and pixel value in the status bar. I found that the cursor location is tracked correctly at up to 1000 fps on my Mac laptop. Set the frame rate by typing alt+\ (Image>Stacks>Animation>Animation Options).

This is the code the Animator class uses to update the status bar after each frame is displayed:

   ImageCanvas ic = imp.getCanvas();
   Point loc = ic!=null?ic.getCursorLoc():null;
   if (loc!=null)
      imp.mouseMoved(loc.x,loc.y);

-wayne





> Folks,
>  
> I develop real-time detector software called areaDetector for the EPICS control system.
>  
> https://epics.anl.gov/
> https://areadetector.github.io/master/index.html
>  
> One of the components of areaDetector is a real-time image display plugin in areaDetector that uses ImageJ.
>  
> https://areadetector.github.io/master/ADViewers/ad_viewers.html#imagej-viewers
> https://github.com/areaDetector/ADViewers/tree/master/ImageJ/EPICS_areaDetector
>  
> It receives images over the network using the EPICS Channel Access or pvAccess protocols and displays them in ImageJ.  This plugin is used worldwide at a large number of large physics facilities such as synchrotrons, neutron sources, and telescopes.  The ImageJ performance is excellent.  Here is a screen shot of ImageJ receiving and displaying 180 frames/s 1024x1024 pixels, 8-bit.
>  
>  
> <image001.png>
>  
> <image002.png>
>  
> There are just a couple of things that don’t work quite right when using ImageJ in this mode.
>  
> -          When displaying monochrome images (ByteProcessor, ShortProcessor, FloatProcessor) the Image/Adjust/Brightness/Contrast works fine.  I can set the brightness and contrast or high and low levels and they are “permanent” until I change them again, and all subsequent images are displayed using these values.  However when displaying RGB images (ColorProcessor) when I change the brightness and contrast it only applies to the current image, they reset automatically when the next image is displayed.  Is there a way to prevent this behavior, or could this be fixed?
> -          When images are arriving quickly the cursor x, y, and value numbers in the main ImageJ window do not track the cursor in the image window correctly.  They don’t just have a lag, they often never update to the current cursor position, even if the cursor is left on the same pixel for a long time.  This means that in order to make a measurement of a pixel position or value I need to  stop the real-time updates, make the measurement and then turn the real-time update back on.  Is there a way to avoid this behavior, or could this be fixed?
>  
> Thanks,
> Mark


--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

Screenshot.png (354K) Download Attachment