Hi William,

after a paste operation, you should always have an endPaste. Before that, the paste operation is not really done, e.g. the user can still move the pasted image around by dragging it with the mouse or use Edit>Paste Control... [1] to change the paste mode.

  Roi roi = getRoi();
  if (roi!=null) roi.endPaste();

Before endPaste, ImageProcessor.rotate will work on the previous image contents (the one before pasting).

A bit of background information:
Most ImageJ processing commands are implemented as a PlugInFilters. Before running a PlugInFilter, ImageJ does an endPaste. Thus, if you use
  IJ.run(newImp, "Rotate... ", "angle=15 interpolation=Bilinear");
this problem won't occur.

Michael


[1] https://imagej.net/ij/docs/guide/146-27.html#sub:Paste-Control...
________________________________________________________________
On 22.01.25 13:39, William Rust wrote:

I got it working 2 minutes after I made the post. Clearing the ROI fixed it
although you are probably right. I also started remembering that the ip is
immutable in the imp so I started updating that as well. In any case, it's
working now and I thank you for your help.

wjr


On Wed, Jan 22, 2025 at 07:05 William Rust <[email protected]> wrote:

I'm writing code in java. What I am trying to do is take an image with 20
wheat kernels in a petri dish and put each kernel in its own image with
the
kernel rotated so all kernels are roughly vertical. Here's the code
snippet
where I am doing it.

             ImageProcessor newIp = new ColorProcessor(300, 300);
             ImagePlus newImp = new ImagePlus("sub " + idx, newIp);
             newIp.setColor(background);
             newIp.fill();
             imp.copy();
             newImp.paste();
             newImp.getProcessor().rotate(angle[idx]);
             newImp.updateAndDraw();
             newImp.show();


Previously, I've cut the subimage out of the original image using the
bounding box from analyze particles. The weirdness occurs somewhere
between
the paste and the rotate. The pasting works whether I do the rotate or
not.
But when I paste, the rotate does not work. And, if I don't paste, the
rotate does work (I can tell this because the background is tilted after
a
rotate with no paste but not with rotate and paste). This snippet shows
one
of the things that I've tried, the updateAndDraw(), but nothing has
worked.
Any ideas on what I'm doing wrong?

Thanks,

wjr.

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

Reply via email to