Camera orientation handling in Micro-Manager and pymmcoreplus

I have a working MM config that controls a NikonTi2 CSU-W1 spinning disk confocal system dual cameras. For my application, I am using pymmcore(-plus) to load this configuration and then operate the microscope using custom python code.

In micro-manager, To make the live preview window of the primary camera show the same orientation as the eyepieces / to match the orientation of both cameras to each other, the orientation of the primary camera needed to be changed, which I achieve with the Image-flipper plugin.

As far as I understand,
(i) there is no other way of changing the camera orientation in micro-manager,

(ii) the setting of the image-flipper is not part of the micro-manager configuration, but instead is stored in the user settings file, and

(iii) the micro-manager configuration file does not reference the user settings file.

In pymmcore-plus, as far as I understand, only the micro-manager configuration is loaded

Hence, my question, is the Image-flipper setting respected when using pymmcore-plus? I am asking because I believe that it should not, but when I actually use the code and look at the orientation of the live image that’s produce via pymmcore-plus, it matches the orientation of the live preview image the micro-manager shows.

@nico.stuurman @talley

hi @CellKai

it is true that there is no direct equivalent of the java-based Image-flipper plugin in pymmcore-plus. Your understanding is correct: there is no configuration outside of the config file you pass to setSystemConfiguration (which is the same file for the java app). And yes: the MMStudio (java micro-manager) user settings file has no effect on pymmcore-plus (we don’t, for example, peek in there and respect the image flipper settings anywhere).

So! I don’t immediately know how to explain what you’re seeing. but my first questions would be:

  • what camera are you using?
  • does the camera itself have any transpose/flip properties? and are you referencing them in the config file?
  • how are you viewing the image in each case? (I assume just MMStudio for java side, but how about the python side?)