<> = Transforming Images (Applying Rotation, Translation, Scale and Mirroring) = What follows is a very simply demonstration of using the Transform object to transform EMData (image) objects. A very thorough explanation of using the Transform is presented in [[Eman2TransformInPython|Using the EMAN2 Transform class]] and you are encouraged to at least be aware of that page's existence. == Using EMData.transform == The first example here is a '''3D''' example. {{{#!python [someone@localhost]# e2.py Welcome to EMAN2 Prompt provided by IPython Enter '?' for ipython help In [3]: e = test_image_3d() # 3D test image In [4]: t = Transform({"type":"eman","az":45,"alt":90}) In [5]: t.set_trans(1,-2,5) In [6]: t.set_scale(2.0) In [7]: e.transform(t) In [8]: display(e) }}} This second example is a '''2D''' example. {{{#!python In [9]: e = test_image() # This is a 2D test image In [10]: t = Transform({"type":"2d","alpha":45}) # Note 2D terminology In [11]: t.set_trans(3,-2) # Note 2D translation In [12]: t.set_mirror(True) In [13]: e.transform(t) In [14]: display(e) }}} == Using the Processor Framework == You can use the processor framework to process an EMData object in and out of place. This can be useful when you wish to operate on a copy of the original image, as opposed to altering it. {{{#!python In [15]: t = Transform(....) # Construct a transform as above In [16]: out_of_place = e.process("xform",{"transform":t}) # Out of place In [17]: e.process_inplace("xform",{"transform":t}) # Inplace In [18]: e.transform(t) # exactly the same as line above }}}