Name
rot_shift2D - Rotate, shift, mirror, and scale a 2-D image.
Usage
output = rot_shift2D(image, alpha, sx, sy, mirror, scale, interpolation_method)
Input
- image
- input image
- alpha
in plane rotation angle (Note this angle is different from Euler in plane angle psi). Check I_O about 2D & 3D alignment parameter related conventions
- sx
- 2-D x shift
- sy
- 2-D y shift
- mirror
- 0. does not mirror 1. mirror over x-axis
- scale
re-scale size ratio after applying rotation. The scale will change the 'physical pixel size' of the image (scale >1 will reduce the pixel size, scale<1 will increase it). Note re-scaling will not change the image size in pixels; to do that, use command resample.
- Attention: scale cannot be set as 0.
- interpolation_method
- interpolation method used to transform the image (default is set to "quadratic" in global_def.py).
Output
- output
- the transformed image
Method
The rotation is performed first, second the shift (in one interpolation step). The scale will change the 'physical pixel size' of the image (scale >1 will reduce the pixel size, scale<1 will increase it). Note rescaling will not change the image size in pixels; to do that, use command resample.
Options
- interpolation_method
- "linear" use linear interpolation to sample the rotated image
- "quadratic" use quadratic interpolation to sample the rotated image
- "gridding" use gridding to sample the rotated image ( This method is very slow )
Description
- The rotation, shift, and scaling are achieved using the following procedure:
- Construct a transformation matrix (a class objection of C++ or python) from the in_plane angles through Transform3D.
- set translation attribute of the object to take care of translation shifts.
- set scale attribute of the object to include scaling factor.
- apply the class object to input image.
See P. R. Baldwin et al. below to find out how to construct transformation class.
Author / Maintainer
Zhong Huang
Keywords
- category 1
- FUNDAMENTALS
Files
fundamentals.py
See also
Reference
P R Baldwin , Pawel A Penczek, The Transform Class in SPARX and EMAN2. J. Struct. Biol. 157 (2007), pp. 251-261.
Maturity
- stable
- works for most people, has been tested; test cases/examples available.
Bugs
None. It is perfect.