spymicmac.image
spymicmac.image is a collection of tools for working with images.
- spymicmac.image.balance_image(img)[source]
Apply contrast-limited adaptive histogram equalization (CLAHE) on an image, then apply a de-noising filter.
- Parameters:
img (array-like) – the image to balance.
- Returns:
img_filt (array-like) – the balanced, filtered image.
- spymicmac.image.contrast_enhance(fn_img, mask_value=None, qmin=0.02, qmax=0.98, gamma=1.25, disksize=3, imgmin=0)[source]
Enhance image contrast in a three-step process. First, the image is processed with a median filter to reduce noise. Next, a linear contrast stretch is applied, and finally, a gamma adjustment is applied.
- Parameters:
fn_img (str) – the image filename.
mask_value (int|float) – a mask value to use when filtering the image.
qmin (float) – the minimum quantile to use for the linear contrast stretch (default: 0.02)
qmax (float) – the maximum quantile to use for the linear contrast stretch (default: 0.98)
gamma (float) – the value to use for the gamma adjustment
disksize (int) – the filter disk size (input to skimage.morphology.disk; default: 3)
imgmin (int|float) – the minimum value in the output image (default: 0)
- Returns:
enhanced (array-like) – the contrast-enhanced image.
- spymicmac.image.get_parts_list(im_pattern)[source]
Find all of the parts of a scanned image that match a given filename pattern
- Parameters:
im_pattern (str) – the image pattern to match
- Returns:
parts_list (list) – a list of all parts of the image that match the pattern.
- spymicmac.image.get_rough_frame(img)[source]
Find the rough location of an image frame/border.
- Parameters:
img (array-like) – the image to find a border for
- Returns:
xmin, xmax, ymin, ymax (float) – the left, right, top, and bottom indices for the rough border.
- spymicmac.image.highpass_filter(img)[source]
Subtract a low-pass from an image, to return a highpass filter.
- Parameters:
img (array-like) – the image to filter.
- Returns:
highpass (array-like) – the highpass-filtered image
- spymicmac.image.join_halves(left, right, overlap, block_size=None, blend=True, trim=None)[source]
Join two halves of a scanned image together.
- Parameters:
left (array-like) – the left half of the image
right (array-like) – the right half of the image
overlap (int) – the amount of overlap, in pixels, between the two halves.
block_size (int) – the number of rows each sub-block should cover. Defaults to overlap.
blend (bool) – apply a linear blend between the two scanned halves (default: True).
trim (int) – the amount to trim the right side of the image by. (default: None).
- spymicmac.image.join_hexagon(im_pattern, overlap=2000, block_size=None, blend=True, is_reversed=False)[source]
Join multiple parts of a scanned image.
- Parameters:
im_pattern (str) – the base name of the image to use (e.g., DZB1216-500280L002001).
overlap (int) – the overlap, in pixels, between the image parts.
block_size (int) – the number of rows each sub-block should cover. Defaults to overlap.
blend (bool) – apply a linear blend between the two scanned halves (default: True).
is_reversed (bool) – parts are in reversed order (i.e., part b is the left part, part a is the right part)
- spymicmac.image.make_binary_mask(img, mult_value=255, erode=0, mask_value=0)[source]
Create a binary mask for an image based on a given mask value. Values equal to mask_value will be given a value of 0 in the mask, while all other values will be set equal to mult_value.
- Parameters:
img (array-like) – the image to create a mask for.
mult_value (int|float) – the value indicating a non-masked value (default: 255).
erode (int) – the size of the erosion operation to apply (default: 0).
mask_value (int) – the value to mask in the image (default: 0).
- Returns:
mask (array-like) the binary mask.
- spymicmac.image.remove_scanner_stripes(img, dtype=<class 'numpy.uint8'>, scan_axis=1)[source]
Remove horizontal (or vertical) stripes from an image.
- Parameters:
img (array-like) – the image to remove stripes from.
dtype (numpy.dtype) – the original datatype of the image.
scan_axis (int) – the axis corresponding to the direction of the stripes. A scan_axis of 1 corresponds to horizontal stripes (the default), while a scan_axis of 0 corresponds to vertical stripes.
- Returns:
destriped: the original image with the stripes (mostly) removed.
- spymicmac.image.splitter(img, nblocks, overlap=0)[source]
Split an image into (m, n) blocks with a given overlap.
- Parameters:
img (array-like) – the image to split
nblocks (tuple) – the number of blocks to create along each axis (m, n)
overlap (int) – the number of pixels to overlap each block. (default: 0)
- Returns:
blocks (list) – a list of the image blocks created
top_inds (list) – a list of the original row index of the top edge of each block
left_inds (list) – a list of the original column index of the left edge of each block
- spymicmac.image.stretch_image(img, scale=(0.0, 1.0), mult=255, imgmin=0, outtype=<class 'numpy.uint8'>, mask=None)[source]
Apply a linear stretch to an image by clipping and stretching to quantiles.
- Parameters:
img (array-like) – the image to stretch.
scale (tuple) – the minimum and maximum quantile to stretch to. (default: (0, 1) - the minimum/maximum values of the image)
mult (int|float) – a multiplier to scale the result to. (default: 255)
imgmin (int|float) – the minimum value in the output image (default: 0)
outtype (numpy.dtype) – the numpy datatype to return the stretched image as. (default: np.uint8)
mask (array-like) – a mask of pixels to ignore when calculating quantiles.
- Returns:
stretched (array-like) – the stretched image.