Re: registration of two cha nnels with beads reference help please

Posted by Jacob Keller-2 on
URL: http://imagej.273.s1.nabble.com/registration-of-two-channels-with-beads-reference-help-please-tp5019938p5019942.html

The plugin "descriptor-based series registration" works well for me, and
was designed for what I think you are doing. I think it also has a way just
to apply the transform after having derived it.

All the best,

Jacob Keller

On Tue, Jan 23, 2018 at 3:53 PM, Kenneth Sloan <[hidden email]>
wrote:

> What sort of transformation do you expect to need to get from the
> reference image to the others?
>
> If just TRANSLATION, then you only need one pair of landmarks.
>
> If TRANSLATION + ROTATION, then you need two pairs.
>
> If TRANSLATION + ROTATION + UNIFORM SCALING, then you might still get away
> with 2
>
> If you have differential scaling in X and Y, then you need 3
>
> If you have local warping of the material being imaged, you need "many".
>
> The traditional approach is to express the transformation as a 3x3
> matrix.  You need a small collection of
> primitive transforms, which you compose to get from one image to the
> others.
>
> There may be an existing plugin that will do this for you, but I suspect
> there is no exact fit, so you may have to roll your own.  My preference is
> always to write a custom Java plugin.
>
> My current approach (using 3 pairs of landmarks) is to treat the 3 points
> (a,b,c) in each image as a "barycentric coordinate system".  In this
> scheme, any point in the image plane can be represented by three numbers:
>
> u,v,w st. P = uA + vB + wC, u+v+w=1.0
>
> To tranform a point in the "other" image to the reference image coordinate
> system, I generally iterate over all pixels in the reference image,
> tranform the [x,y] location to the "other" coordinate system, and sample
> the image there.  Anti-aliasing is optional.
>
> I have a Java class called "Barycentric" which provides helper functions -
> if it would be helpful to you, just ask.
>
> The top level code looks a little bit like:
>
> Barycentric reference = new Barycentric(aReference,bReference,cReference);
> Barycentric other = new Barycentric(aOther,bOther,cOther);
> for(int y=0;y<heightReference;y++)
>  for(int x=0;x<widthReference;x++)
>         {
>           double[]xyReference = {x,y};
>           double[]uvw = reference.toUVW(x,y);
>           double[]xyOther = other.toXY(uvw);
>           Pixel pixel = Sample(OtherImage,xyOther);
>           newOtherImage.put(x,y,pixel);
>         }
>
>
> You could package this up into a method such as:
>
>    newOtherImage = Resample(referenceImage, otherImage,
>                              aReference, bReference, cReference, aOther,
> bOther, cOther);
>
> The traditional 3x3 matrix view of transformations allows you to enforce
> constraints on the type of transformation.  In my most recent
> implementation of this process, I gather only 1 pair of landmarks if I want
> to limit the transformation to TRANSLATION, and 2 landmarks if I want to
> limit it to TRANSLATION, ROTATION, and  UNIFORM SCALING.  [I invent the
> other 2 landmark pairs in the above 2 cases]
>
>
> --
> Kenneth Sloan
> [hidden email]
> Vision is the art of seeing what is invisible to others.
>
>
>
>
>
> > On 23 Jan 2018, at 13:42 , Cammer, Michael <[hidden email]>
> wrote:
> >
> > We are looking for a solution to a registration problem and would
> appreciate help.
> >
> > At the beginning of each timelapse sequence, we take images of
> multicolor beads as a reference.  We would like to have the reference image
> registered and apply the parameters for the registration to about 20 other
> 2 channel timelapse files.  We expect that we would need five points to do
> the correction, one from each corner and one from the center.  The initial
> registration could involve the user clicking on coincident spots or could
> be automatic.  While we would prefer to keep the original 16 bit depth, we
> could make do with 8 bits.
> >
> > An example beads picture is at http://microscopynotes.com/
> temp/AVG_20171214_beads.tif  (In the future we will try to use smaller
> beads.)
> >
> > Any help appreciated.
> >
> > Michael Cammer, Sr Research Scientist, DART Microscopy Laboratory
> > NYU Langone Health, 540 First Avenue, SK2 Microscopy Suite, New York,
> NY  10016
> > C: 914-309-3270  [hidden email]<mailto:
> [hidden email]>  http://nyulmc.org/micros
> http://microscopynotes.com/
> >
> >
> >
> > ------------------------------------------------------------
> > This email message, including any attachments, is for the sole use of
> the intended recipient(s) and may contain information that is proprietary,
> confidential, and exempt from disclosure under applicable law. Any
> unauthorized review, use, disclosure, or distribution is prohibited. If you
> have received this email in error please notify the sender by return email
> and delete the original message. Please note, the recipient should check
> this email and any attachments for the presence of viruses. The
> organization accepts no liability for any damage caused by any virus
> transmitted by this email.
> > =================================
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

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