Source code for slitflow.fig.image

import numpy as np
import matplotlib.pyplot as plt

from .figure import Figure
from ..fun.misc import reduce_list as rl


[docs]class Gray(Figure): """Create pseudo color map from a gray scale Image object. .. caution:: The image should be split into a single frame image. In other words, the shape of reqs[0] in :meth:`process` should be (1, height, width). Args: reqs[0] (Image): Image to create image Figure. Required params; ``img_size``, ``pitch``. param["lut_limits"] (list of float): Lower and upper limit of LUT. param["cmap"] (str, optional): Color map name for :func:`matplotlib.pyplot.imshow`. Defaults to "viridis". Returns: Figure: matplotlib Figure object """
[docs] def set_info(self, param={}): """Copy info from reqs[0] and add params. """ self.info.copy_req(0) self.info.add_param( "lut_limits", param["lut_limits"], "list of float", "LUT lower and higher limit values") if "cmap" not in param: param["cmap"] = "viridis" self.info.add_param( "cmap", param["cmap"], "str", "Colormap type string") self.info.set_split_depth(param["split_depth"]) index_cols = self.info.get_column_name("index") self.info.delete_column(keeps=index_cols[:self.info.split_depth()])
[docs] @staticmethod def process(reqs, param): """Create pseudo color map from a gray scale image array. Args: reqs[0] (numpy.ndarray): Image to create image figure. param["lut_limits"] (list of float): Lower and upper limit of LUT. param["cmap"] (str): Color map name for :func:`matplotlib.pyplot.imshow`. Returns: matplotlib.figure.Figure: matplotlib Figure containing pseudo color image """ img = reqs[0].copy()[0, :, :] low = param["lut_limits"][0] high = param["lut_limits"][1] width = param["img_size"][0] * param["pitch"] height = param["img_size"][0] * param["pitch"] fig, ax = plt.subplots() ax.imshow(img, origin="lower", extent=[0, width, 0, height], clim=(low, high), cmap=param["cmap"], label="img") return fig