miop.image_helper package¶
Submodules¶
miop.image_helper.geometry module¶
- miop.image_helper.geometry.get_rotation_matrix(axis, angle, rad=False)[source]¶
Returns a rotation matrix for given axis and angle.
Parameters: - axis: A 3-element array-like specifying the axis of rotation (e.g., [1., 1., 1.]) - angle_degrees: The angle of rotation in degrees
Returns: - A 3x3 rotation matrix
- miop.image_helper.geometry.sample_points_on_plane(n, d, size=500, num_points=1000)[source]¶
Samples random points on a plane defined by the normal vector n and intercept d.
Parameters: - n: A 3-element array representing the normalized normal vector of the plane. - d: The intercept of the plane (distance from origin along the normal). - num_points: The number of random points to sample (default: 1000)
Returns: - A (num_points, 3) array where each row is a point on the plane.
miop.image_helper.image module¶
- class miop.image_helper.image.Image(image_path, image_name, metadata_type, metadata=None, tilt_axis=[1.0, 0, 0])[source]¶
Bases:
objectRepresents an image with associated metadata, and provides tools for preprocessing, transformation, and visualization.
The image is loaded from the given path and may include metadata in ‘fei’, ‘custom’, or ‘none’ formats. Basic image transformations such as cropping, rotation, and downsampling are supported.
- image_path¶
Path to the image file.
- Type:
str
- image_name¶
Name of the image file.
- Type:
str
- image¶
Image data as a NumPy array, loaded using OpenCV.
- Type:
np.ndarray
- metadata_type¶
Type of metadata used (‘fei’, ‘custom’, or ‘none’).
- Type:
str
- tilt_axis¶
Axis about which the tilt is defined. Default is [1., 0, 0].
- Type:
list of float
- tilt¶
Tilt angle in radians.
- Type:
float
- rotation_z¶
In-plane rotation angle (around z-axis) in radians. Automatically snapped to closest multiple of 90°.
- Type:
float
- tilt_rad¶
Whether the tilt is in radians (always True after init).
- Type:
bool
- metadata¶
Parsed metadata from the image (if available).
- Type:
dict
- crop(dim, top_left_corner)[source]¶
Crops the image based on given dimensions and top-left coordinates.
- Parameters:
dim (list of int) – Width and height of the cropped region [width, height].
top_left_corner (list of int) – X and Y coordinates of the top-left corner of the cropping box.
- Returns:
The image object after cropping (for method chaining).
- Return type:
Self
- downsample(factor_x, factor_y)[source]¶
Downsamples the image using nearest-neighbor interpolation.
- Parameters:
factor_x (float) – Downsampling factor in the x-direction (width).
factor_y (float) – Downsampling factor in the y-direction (height).
- Returns:
The image object after downsampling (for method chaining).
- Return type:
Self
- rotate(angle, rad=False)[source]¶
Rotates the image by a given angle.
- Parameters:
angle (float) – Angle to rotate the image.
rad (bool, optional) – If True, the angle is interpreted as radians. Default is False (degrees).
- Returns:
Rotated image.
- Return type:
np.ndarray
- rotate_by_transpose()[source]¶
Rotates the image using matrix transposition based on rotation_z, which is expected to be a multiple of 90 degrees (in radians). Uses NumPy’s rot90.
- Returns:
Rotated image.
- Return type:
np.ndarray
- Raises:
ValueError – If rotation_z exceeds 2π radians.
- save(path_to_dir)[source]¶
Saves the image to the specified directory as a PNG file.
- Parameters:
path_to_dir (str) – Directory where the image should be saved.
- Returns:
True if the image is successfully saved, False otherwise.
- Return type:
bool
- property shape¶
Returns the shape of the image.
- Returns:
The shape of the image (height, width, channels).
- Return type:
tuple