Grid creation issue in micro-manager

Hello, I’m new to uManager and seem to be having an issue with grid creation functionality. When I create a grid, with a certain overlap, the FoVs within a row overlap as expected but FoVs across columns do not overlap. I currently shift rows manually to make the grid work.

Any comments on this?

PS: I’m certain I’m using the right ‘pixel size’ as I determine this manually using a ruler slide. My stage is a Marzhauser, if this is relevant.

Hi @orkun, welcome to this forum!

Does it so happen that your camera is rectangular rather than square? If so, you could have uncovered a bug, but please confirm before I start looking at that possibility.

This is my camera;

Instead of making me look at that documentation, can you please tell me if the image is a square or a rectangle?

sorry, yes, rectangle.

I just tried to reproduce this with the demo camera (by setting the image size to 756 x 512 pixels), but the output of the grid creator looks correct, and the same overlap is applied to both x and y.

  • Just to be sure, are you using a recent nightly build of 2.0?
  • Can you check that the y values in the generated list are correct (i.e. Pos_0001_0001 - Pos_000_000 equals image size for x and y minus overlap)?

I’m using 2.0.0-beta3_20181129.

I was told that this is the stable version where the PointGrey camera drivers will work and newer versions do not yet have these drivers.

best
orkun

The Spinnaker and Flycap2 device adapters are both included in the Micro-Manager installer, and will work with the version of the Point Grey driver as described in the documentation on the Micro-Manager website. Long ago, the Spinnaker device adapter was distributed separately, but that has long ago been remedied. So, please do try a newish nightly build and your troubles may go away;)

Hi Nico,
I managed to make time and switch to the latest build of uManager (from last week). Everything is now working on the scope, using this latest version, which is great. The problem with grid creation seems to persist, though.

I will double check again my pixel size measurement is correct, but I had checked this between measuring with ruler slide and using ‘pixel calibrator’ and was getting similar values. So, it is unlikely that pixel size is the issue. I will still double check (when I get a moment).

In the mean time, any more suggestions would be appreciated. If it would help, I can send the position file created or the config file I’m using.

PS: My image size is 1920 × 1200. I note the ratio is different from your trial, mentioned above, but I guess this should not matter?

best
orkun

Can you post a list of coordinates that is generated by the grid creator?

Yes, excuse the delay (life getting in the way!)…this shows the grid created by umanager, plus few points I created in addition.

best
orkunPositionList_20210119_2try.txt (22.1 KB)

Difference in x positions between locations is 2193.408 micron, difference in y is 1370.88 micron. Ratio of these is 1.6, which is exactly the same as the x/y ratio of your camera sensor. Seems like the grid positions are correct. Did you specify any overlap when you created this grid? What is the pixel size?

yes, created with 20% overlap…px = 1.428um

best

And do you see 20% overlap in the X direction, but nothing in the Y direction?

1.428 * 1920 = 2713.2 minus 20% = 2193.408
1.428 * 1200 = 1713.6 minus 20% = 1370.88

Looks like the grid creator is creating the correct coordinates.

One thing I’ll mention is that the code that generates the grid positions doesn’t have any automatic knowledge of how the camera is oriented. It uses the camera’s “TransposeCorrection” property to determine how the camera is oriented relative to the translation stage. One quick thing you could try is to toggle the “TransposeCorrection” property and see if this fixes the issue.

Assuming that it works, you can then add the correct property setting to the “Startup” configuration group to have the correct setting automatically applied when you start Micro-Manager. More information here: Micro-Manager Configuration Guide - Micro-Manager

Great point! I guess that it would be nice to have the Gird Creator also fully switch to using the Affine Transforms. As a bonus, that would allow for perfect grids, even when the stage and camera are not exactly aligned.

Hi Nico, I agree that this would be a good direction to take. I haven’t used the Affine Transform functionality much, but assuming that it is working reliably I think it would be a great replacement for the “Transpose”, “MirrorX” and “MirrorY” properties that cameras and XY stages currently have.

–Nick

Hi All,
Thanks for the suggestion @nanthony21 and also great to see this caused some useful discussion.

Unfortunately, the ‘TransposeCorrection’ idea did not help. This was not checked originally, and checking (or unchecking) it did not make a difference to the grid.

But, your analysis seems correct. i.e. the grid calculations are indeed correct and they do apply the x-dimension of the camera (1920px) to the x-axis of stage and y-dimension (1200px) to the y-axis. This, however needs to be the other way around, because either my camera or my stage seem inverted.

Is there any setting I can trial on the stage side?

best
orkun

Hi Orkun,

I just took a closer look at the relevant code and realized that I was mistaken about the “TransposeCorrection” property.

In order for the “TileCreator” to swap the X and Y axes you must have “TransposeCorrection” set to “0” and have “TransposeXY” set to “1”. Can you give that a try? I’d like to replace all this confusing properties with the affine transform at some point, but it probably won’t bee in the near future.

Note: The XY stage “Transpose…” properties and the camera “TransposeMirror…” properties don’t appear to have an effect on grid creation.

This works! Thanks much @nanthony21

best
orkun