http://imagej.273.s1.nabble.com/registration-of-two-channels-with-beads-reference-help-please-tp5019938p5019942.html
was designed for what I think you are doing. I think it also has a way just
> 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>