API documentation¶
This is API documentation.
-
connectivity.get_categories(image)¶ Find all values in a numpy array
Return a sorted list of categories found in image 2D arrays.
Parameters: - image : ndarray | Image
non-empty numpy array
Returns: - list
sorted list of all categories (from smallest to greatest)
-
connectivity.get_components(image, background=None)¶ Computes connected components array of an input image
Returns array of the same size as the input array. The returned array contains integer labels, pixels belonging to the same components have the same label.
http://scikit-image.org/docs/stable/api/skimage.measure.html#label
Parameters: - image : ndarray | Image
non-empty numpy array
- background : int
optional argument for background category; background pixels will belong to the same connected component If no background specified, no background is used at all
Returns: - ndarray
numpy array of the same size as input
-
connectivity.get_function(image, axis)¶ Computes connectivity function along given axis for all categories in image
Returns a dictionary of connectivity functions. Keys of the dictionary are the categories given by get_categories. Each entry is a numpy array of connectivity values for all pixels in axis direction for all categories
Parameters: - image : ndarray | Image
Returns: - dict
dictionary of connectivity functions, each being a numpy array of length n = image.shape[axis]
-
connectivity.get_map(image)¶ Computes connectivity map for all categories in image.
Returns a dictionary of connectivity maps. Keys of the dictionary are the categories given by get_categories. Each entry is a numpy 2D array of connectivity values for given shifts
Parameters: - image : ndarray | Image
non-empty numpy array
Returns: - ndarray
2D numpy array of size nx-1, ny-1
-
class
img.Image(data, params)¶ A data container. The underlying data structure is a numpy ndarray. Implements transformations on images, as well as type conversion from the following data types :
png The classical image extension
gslib The .gslib format is a text format with the following structure :
nx ny nz x_orig y_orig z_orig x_padding y_padding z_paddingnumber_of_variables (should be 1 for our use)name_of_variable_1…name_of_variable_nthen, on each line, the value of a coordinate (x,y,z), in the order of the nested loop :
- for x = 1 to nx
- for y = 1 to ny:
- for z = 1 to nz:
vox A binary file used in MagicaVoxel and in other voxel editors. https://ephtracy.github.io/index.html?page=mv_main
Methods
apply_fun(fun)Transformation method. asArray()Return the raw data as a numpy array categorize(nb_categories[, …])Transformation method. exportAsGslib(output_name[, verbose])Export the Image object data as a gslib file. exportAsPng(output_name[, verbose])Export the Image object data as a png file. exportAsTxt(output_name[, verbose])Export the Image object data as a txt file. exportAsVox(output_name[, verbose])Export the Image object data as a vox file. exportCuts([output_folder, axis, n, invert])Export the Image object data as cuts along an axis. fromArray(ar[, normalize])Image staticmethod. fromGslib(file_name[, normalize])Image staticmethod. fromPng(file_name[, normalize])Image staticmethod. fromTxt(file_name, shape[, normalize])Image staticmethod. fromVox(file_name)Image staticmethod. get_sample(output_dim[, normalize])Extract a random submatrix of a given size from the data container. normalize()Transformation method. plot()Displays the image using matplotlib.pyplot saturate([t])Transformation method. threshold([thresholds, values])Returns a categorized image according to thresholds specified. tile_images(image_stack, mode)Given a list of Images, reshapes them into a tiling for display. unnormalize([output_type])Transformation method. -
apply_fun(fun)¶ Transformation method. Applies a function to every element of the data container.
Parameters: - ‘fun’ : a python function returning an number
the function to be called
-
asArray()¶ Return the raw data as a numpy array
-
categorize(nb_categories: int, initial_clusters=None, norm='l1', max_iter=10)¶ Transformation method. Applies a clustering algorithm to categorize the image. k clusters will be created, with the color value of their barycenter.
Parameters: - ‘nb_categories’ : int
The number of categories
- ‘initial_clusters’ : list
Values of the initial centroids for the cluster. If not provided, those values will be taken at random
- ‘norm’ : str
The distance to be used. Supported distance are l1 and l2. Only relevant when dealing with colored (multi channel) images.
- ‘max_iter’ : int
Maximal number of cluster updates allowed
-
exportAsGslib(output_name: str, verbose=False)¶ Export the Image object data as a gslib file. Requires the image to be a black and white one (only one channel)
Parameters: - ‘output_name’ : string
relative path to the gslib file to be output
- ‘verbose’ : boolean
enables verbose mode. Set to False by default
-
exportAsPng(output_name: str, verbose=False)¶ Export the Image object data as a png file. Requires the data to be two dimensionnal.
Parameters: - ‘output_name’ : string
relative path to the png file to be output
- ‘verbose’ : boolean
enables verbose mode. Set to False by default
-
exportAsTxt(output_name: str, verbose=False)¶ Export the Image object data as a txt file. Requires the data to be two dimensionnal.
Parameters: - ‘output_name’ : string
relative path to the txt file to be output
- ‘verbose’ : boolean
enables verbose mode. Set to False by default
-
exportAsVox(output_name: str, verbose=False)¶ Export the Image object data as a vox file. Requires the image to be a black and white one (only one channel). Requires py-vox-io to function.
Parameters: - ‘output_name’ : string
relative path to the vox file to be output
- ‘verbose’ : boolean
enables verbose mode. default=False
-
exportCuts(output_folder='cut_output', axis=-1, n=-1, invert=False)¶ Export the Image object data as cuts along an axis. Requires the image to be a black and white one (only one channel). The exported cuts are saved as png files. If the image is two dimensionnal, performs as exportAsPng.
Parameters: - ‘output_folder’ : string
relative path to the folder file in which the cuts will be saved
- ‘axis’ : intI
The axis along the cuts are made. If set to -1, will perform cuts along all axis. default=-1
- ‘n’ : int
The number of cuts performed in the given direction. If set to -1, will perform every possible cuts. Otherwise, takes n cuts at random. Default=-1
- ‘invert’ : boolean
if set to true, will invert the colors of the image (x -> 255-x) default=False
-
static
fromArray(ar, normalize=False)¶ Image staticmethod. Used as an initializer. Builds the container from a numpy array
Parameters: - ‘ar’ : ndarray | list of ndarray
The numpy array around which the Image object is built A list of 2D ndarray can be given in order to build a 3D image
Returns: - A new Image object
-
static
fromGslib(file_name: str, normalize=False)¶ Image staticmethod. Used as an initializer. Builds the container from a .gslib file.
Parameters: - ‘file_name’ : string
relative path to the gslib file
- ‘normalize’ : boolean
if set to true, the values will be stretched to fit in [-1;1]
Returns: - A new Image object
-
static
fromPng(file_name: str, normalize=False)¶ Image staticmethod. Used as an initializer. Builds the container from a .png file. Makes calls to the Pillow library
Parameters: - ‘file_name’ : string
relative path to the png file
- ‘normalize’ : boolean
if set to true, the values will be stretched to fit in [-1;1]
Returns: - A new Image object
-
static
fromTxt(file_name: str, shape, normalize=False)¶ Image staticmethod. Used as an initializer. Builds the container from a raw txt file
Parameters: - ‘file_name’ : string
the relative path to the txt file to read
- ‘shape’ : tuple of int
the shape of the data (shape is not contained in the raw txt file, thus this parameter is necessary)
Returns: - A new Image object
-
static
fromVox(file_name: str)¶ Image staticmethod. Used as an initializer. Builds the container from a .vox file. Requires py-vox-io to function
Parameters: - ‘file_name’ : string
relative path to the gslib file
Returns: - A new Image object
-
get_sample(output_dim, normalize=False)¶ Extract a random submatrix of a given size from the data container.
Parameters: - ‘output_dim’ : tuple
The size of the sample. All coordinates should lay between 0 and the corresponding coordinate of self._data
- ‘normalize’ : boolean
if set to true, apply the normalize method to the output sample to get values in [-1;1]
Returns: - A new Image object of size ‘output_dim’
-
normalize()¶ Transformation method. Applies a linear transformation to get all data in range [-1,1]
-
plot()¶ Displays the image using matplotlib.pyplot
-
saturate(t=5)¶ Transformation method. Applies a saturation of height t on the image, that is to say : sends elements with values<t to 255 and does not change other values.
This is usefull for the .vox format, where 0 values are being rendered as transparent.
Parameters: - ‘t’ : int
the height of the saturation. default = 5
-
threshold(thresholds=[127], values=None)¶ Returns a categorized image according to thresholds specified.
Parameters: - ‘thresholds’ : ndarray | list
must be non-empty and all image values must lie between first and last element of threshold
- ‘values’ : ndarray | list
a list of size len(thresholds)+1. If this argument is not None, the categories will take the given. Otherwise, the categores will have their mean value as a category value.
-
static
tile_images(image_stack, mode)¶ Given a list of Images, reshapes them into a tiling for display.
Parameters: - ‘image_stack’ : list of Images
the images that will be concatenated
- ‘mode’ : string | tuple
- The mode of tiling. Three predefined modes are available :
horizontal -> ‘h’ option vertical -> ‘v’ option square -> ‘s’ option
You can also provide a tuple (nb_lines,nb_columns) for any rectangular tiling. If your number of images is not nb_lines*nb_columns, the function will complete with black images
Returns: - A new Image instance
-
unnormalize(output_type=<class 'numpy.uint8'>)¶ Transformation method. Applies a linear transformation to get all data in range [0,255]
Parameters: - ‘output_type’ : np.dtype
The type the data will be casted to. default = np.uint8 (integers in range [0;255])
-
img.gslib_to_png(gslib_file: str, output_name: str)¶ Conversion function
-
img.gslib_to_vox(in_file: str, out_file: str, verbose=False)¶ Conversion function
-
img.labelize(image)¶ Label the data to get integers from 0 to the number of facies
Parameters: - image : ndarray | Image
non-empty numpy array or Image class object
Returns: - ndarray
array of the same shape of image containing the categories
-
img.png_to_gslib(png_file: str, output_name: str)¶ Conversion function
-
img.vox_to_gslib(in_file: str, out_file: str)¶ Conversion function