Re: snapshot and swapPixelArrays

Posted by Michael Schmid on
URL: http://imagej.273.s1.nabble.com/snapshot-and-swapPixelArrays-tp5005347p5005349.html

Hi Robert,

if you have the original data as a snapshot in the background, the easiest would be addressing the snapshot pixels array directly.  For 16-bit data:

ImageProcessor ip = imp.getProcessor();
short[] snapshotPixels = (short[])(ip.getSnapshotPixels());

short val = snapshotPixels[x + y*width];

This assumes you have a single image, not a stack.  There is no snapshot (undo buffer) for an operation on a stack.

Michael
________________________________________________________________
On Oct 28, 2013, at 16:20, Robert Lockwood wrote:

> Thought I had this working but I don't. My (16 bit monochromeTIFF) images
> are very low contrast so I want to automatically enhance the contrast for
> display.  On the other hand I want to show the original datum at the cursor.
>
> I have attempted to use Snapshot and swapPixelArrays but it doesn't work as
> I expected. that is, backup the original data, enhance it, display it, and
> then swap the buffers so that the original pixel value can be retrieved.
>
> Display
>  Imp = IJ.openImage(inFile.getPath());
>  imp.getProcessor().snapshot();
>  ContrastEnhancer ce = new ContrastEnhancer();
>  ce.equalize(imp);
>  jImagePanel.updateImage(imp);
>  imp.getProcessor().swapPixelArrays();
>
> Get datum at cursor:
>  int X = e.getX();
>  int Y = e.getY();
>  int val = imp.getProcessor().getPixel(X, Y);
>
> I think I'm misunderstanding something ...
>
> Nate

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