playnano.io.image_sequence_export module¶
Image-sequence export utilities for AFM image stacks.
This module provides functions for saving each frame of an AFM image stack as
an individual PNG or JPEG file inside a dedicated output folder. Frames can be
normalised automatically or scaled with a fixed z-range, and are annotated with
optional timestamps and scale bars using the shared rendering pipeline in
render_utils
Dependencies¶
matplotlib
numpy
Pillow (PIL)
- playnano.io.image_sequence_export.create_image_sequence(image_stack: ndarray, pixel_sizes_nm: list, timestamps=None, scale_bar_length_nm: int = 100, output_folder: str | Path = 'output_frames', base_name: str = 'frame', fmt: str = 'png', cmap_name: str = 'afm_brown', zmin: float | str | None = None, zmax: float | str | None = None, draw_ts: bool = True, draw_scale: bool = True, font_scale: float = 2.0) Path[source]¶
Save every frame of an AFM image stack as an individual image file.
Frames are normalised, colourised with a matplotlib colormap, and annotated with a scale bar and timestamp before being written to output_folder as
<base_name>_NNNN.<fmt>.- Parameters:
image_stack (np.ndarray) – 3D array of shape (N, H, W) representing the AFM image stack.
pixel_sizes_nm (list) – Per-frame pixel size in nanometres. Must have the same length as
image_stack.timestamps (list[float] or tuple[float], optional) – Timestamps in seconds for each frame. Frame indices are used as a fallback when
Noneor invalid.scale_bar_length_nm (int) – Length of the scale bar in nanometres. Default is 100.
output_folder (str or Path) – Directory in which the frame images will be saved. Created automatically if it does not exist.
base_name (str) – Stem used for each file:
<base_name>_0000.png, etc. Default is"frame".fmt ({"png", "jpg", "jpeg"}) – Image file format. Default is
"png".cmap_name (str) – Name of the matplotlib colormap. Default is
'afmhot'.zmin (float or str or None, optional) – Minimum z-value mapped to the low end of the colormap.
"auto"uses the 1st percentile of the full stack.zmax (float or str or None, optional) – Maximum z-value mapped to the high end of the colormap.
"auto"uses the 99th percentile of the full stack.draw_ts (bool) – Whether to draw timestamps on each frame. Default is
True.draw_scale (bool) – Whether to draw a scale bar on each frame. Default is
True.font_scale (float) – Base font scale for annotations at the reference height.
- Returns:
The resolved output folder where images were written.
- Return type:
Path
- Raises:
ValueError – If
fmtis not a supported image format, or ifzmin == zmax.
Notes
Frames are normalised globally when
zmin/zmaxare provided, otherwise per-frame normalisation is applied.PNG files are lossless; JPEG files are saved at quality
_JPEG_QUALITY(default 90).Zero-padded four-digit frame indices are used so files sort correctly up to 9 999 frames; for larger stacks the padding grows automatically.
- playnano.io.image_sequence_export.export_image_sequence(afm_stack, make_sequence: bool, output_folder: str | None, output_name: str | None, scale_bar_nm: int | None, fmt: str = 'png', raw: bool = False, zmin: float | None = None, zmax: float | None = None, draw_ts: bool = True, draw_scale: bool = True, cmap_name: str = 'afm_brown', font_scale: float = 2.0) None[source]¶
Export an AFM image stack as a folder of annotated PNG or JPEG images.
Each frame is saved as a separate file named
<stem>_NNNN.<fmt>inside a subfolder<output_folder>/<stem>/.- Parameters:
afm_stack (AFMImageStack) – AFM stack object containing raw and/or processed data.
make_sequence (bool) – Whether to generate the image sequence. Returns immediately when
False.output_folder (str or None) – Root directory for output. Defaults to
"output"whenNone. A subfolder named after the stack stem is created inside it.output_name (str or None) – Base name for the subfolder and frame files. Derived from the stack file name when
None.scale_bar_nm (int or None) – Scale bar length in nanometres. Defaults to 100 nm when
None.fmt ({"png", "jpg", "jpeg"}) – Image file format. Default is
"png".raw (bool) – If
True, export the unprocessed raw snapshot. Default isFalse.zmin (float or None, optional) – Minimum z-value for colormap scaling.
"auto"triggers the 1st percentile.Noneuses per-frame minimum.zmax (float or None, optional) – Maximum z-value for colormap scaling.
"auto"triggers the 99th percentile.Noneuses per-frame maximum.draw_ts (bool) – Whether to draw timestamps on each frame. Default is
True.draw_scale (bool) – Whether to draw a scale bar on each frame. Default is
True.
- Return type:
None
Notes
Processed data is preferred over raw when available;
_filteredis appended to the output stem in that case.Timestamps and pixel size are read from
afm_stack.frame_metadata. When exporting raw data after anedit_stackstep, the pre-edit metadata stored inafm_stack.state_backups['frame_metadata_before_edit']is used.