How can I modify or call the rotation of an image on the python interactor on 3dslicer ?

Is it possible to modify or edit zooming in and out of the image on python console ?

here’s a snippet to get the slice logic from the interface:

Once you have that you can call methods either on the sliceLogic [1] or you can get the sliceNode [2] and call methods like redLogic.GetSliceNode().SetFieldOfView(20,30,1) to change the zoom.



I have tried redLogic.GetSliceNode().SetFieldOfView(20,30,1) in order to change the zoom, but it did not change anything. I was using the four up view, and the red window turned black when I used redlogic for some reason. How can I use it properly in order to change the zoom ?

This is what I get when I plug in 21%20PM :


when I plug in redLogic.SetSliceOffset(10):


I presume that redlogic is controlling the shape of the image and the brightness at the same time one of the windows turned black, instead of controlling the zoom.

I have figured how it works thanks a lot. However, I do not know how to control the rotation of the image via python interactor ?

Thanks again!

I do not know how to control the rotation of the image via python interactor

Adjust SliceToRAS transform in the slice node. It is a homogeneous transform, so the top-left 3x3 matrix specifies the slice orientation (first column is slice X, second column is slice Y, third column is slice normal direction) and 4th column specifies slice position.

20%20PMAs you can see in the attached image whenever I try to execute any different numbers for the x,y and normal slices for the axial view, I do not get to zoom in or out, instead a black image. I believe the problem is I am zooming in a lot, however what I want to know how to control is to zoom in or out of the image itself only via python interactor.

instead I would like to control the zooming in the following mechanism which can be done by using the mouse. But, in my case I want to control the zooming mechanism into the image and out of the image like it can be seen on the following images on the 2D yellow image view.


FieldOfView defines the zoom factor. Get the old value, multiply x and y components by a factor (e.g., by 1.1 to zoom out a bit), and set the resulting values as new FOV.

I tried the same thing you suggested, but the image disappeared and I could not bring it back.

1 Like

You’ve forgot to get the old FOV value (or at least the screenshot that you attached did not show how you got the old value).

How do I set the resulting values as new FOV ?

Use GetFieldOfView method to get current values, scale them, and set the new values using SetFieldOfView.