Classes/Modules

Voronoi

class Voronoi.Voronoi(xypoints, image_width, image_height)[source]

Root object from which to create the voronoi diagram

Parameters:
  • xypoints (List of (x,y) pairs) – [(x,y), …] sets of points from which to build the voronoi diagram
  • image_width (int) – width of the original image from which the points are derived
  • image_width – height of the original image from which the points are derived
Returns:

an instance of the object Voronoi

Return type:

object

Example:
>>> import Voronoi_Features as VF
>>> vor = VF.Voronoi([X,Y],1000,500)
>>>
>>> #VISUALIZE THE VORONOI IMAGE
>>> fig = plt.figure(figsize=(20,15))
>>> plt.imshow(vor.get_voronoi_map())
features(props_name)[source]

Measure the values of the specified property/measure name (e.g., ‘area’) for all voronoi regions.

Parameters:prop_name (string) – name of the property to measure (e.g, ‘area’)
Returns:Feature object
Return type:Object
Example:
>>> import Voronoi_Features as VF
>>> voro = VF.Images(folder_name)
>>> features = voro.features(['area','perimeter'])
>>> features.get_data_frame().head()

The following properties can be accessed as attributes or keys:

area : int
Number of pixels of region.
bbox : tuple
Bounding box (min_row, min_col, max_row, max_col). Pixels belonging to the bounding box are in the half-open interval [min_row; max_row) and [min_col; max_col).
bbox_area : int
Number of pixels of bounding box.
centroid : array
Centroid coordinate tuple (row, col).
convex_area : int
Number of pixels of convex hull image.
convex_image : (H, J) ndarray
Binary convex hull image which has the same size as bounding box.
coords : (N, 2) ndarray
Coordinate list (row, col) of the region.
eccentricity : float
Eccentricity of the ellipse that has the same second-moments as the region. The eccentricity is the ratio of the focal distance (distance between focal points) over the major axis length. The value is in the interval [0, 1). When it is 0, the ellipse becomes a circle.
equivalent_diameter : float
The diameter of a circle with the same area as the region.
euler_number : int
Euler characteristic of region. Computed as number of objects (= 1) subtracted by number of holes (8-connectivity).
extent : float
Ratio of pixels in the region to pixels in the total bounding box. Computed as area / (rows * cols)
filled_area : int
Number of pixels of filled region.
filled_image : (H, J) ndarray
Binary region image with filled holes which has the same size as bounding box.
image : (H, J) ndarray
Sliced binary region image which has the same size as bounding box.
inertia_tensor : (2, 2) ndarray
Inertia tensor of the region for the rotation around its mass.
inertia_tensor_eigvals : tuple
The two eigen values of the inertia tensor in decreasing order.
intensity_image : ndarray
Image inside region bounding box.
label : int
The label in the labeled input image.
local_centroid : array
Centroid coordinate tuple (row, col), relative to region bounding box.
major_axis_length : float
The length of the major axis of the ellipse that has the same normalized second central moments as the region.
max_intensity : float
Value with the greatest intensity in the region.
mean_intensity : float
Value with the mean intensity in the region.
min_intensity : float
Value with the least intensity in the region.
minor_axis_length : float
The length of the minor axis of the ellipse that has the same normalized second central moments as the region.
moments : (3, 3) ndarray
Spatial moments up to 3rd order::
m_ji = sum{ array(x, y) * x^j * y^i }

where the sum is over the x, y coordinates of the region.

moments_central : (3, 3) ndarray
Central moments (translation invariant) up to 3rd order::
mu_ji = sum{ array(x, y) * (x - x_c)^j * (y - y_c)^i }

where the sum is over the x, y coordinates of the region, and x_c and y_c are the coordinates of the region’s centroid.

moments_hu : tuple
Hu moments (translation, scale and rotation invariant).
moments_normalized : (3, 3) ndarray
Normalized moments (translation and scale invariant) up to 3rd order::
nu_ji = mu_ji / m_00^[(i+j)/2 + 1]

where m_00 is the zeroth spatial moment.

orientation : float
Angle between the X-axis and the major axis of the ellipse that has the same second-moments as the region. Ranging from -pi/2 to pi/2 in counter-clockwise direction.
perimeter : float
Perimeter of object which approximates the contour as a line through the centers of border pixels using a 4-connectivity.
solidity : float
Ratio of pixels in the region to pixels of the convex hull image.
weighted_centroid : array
Centroid coordinate tuple (row, col) weighted with intensity image.
weighted_local_centroid : array
Centroid coordinate tuple (row, col), relative to region bounding box, weighted with intensity image.
weighted_moments : (3, 3) ndarray
Spatial moments of intensity image up to 3rd order::
wm_ji = sum{ array(x, y) * x^j * y^i }

where the sum is over the x, y coordinates of the region.

weighted_moments_central : (3, 3) ndarray

Central moments (translation invariant) of intensity image up to 3rd order:

wmu_ji = sum{ array(x, y) * (x - x_c)^j * (y - y_c)^i }

where the sum is over the x, y coordinates of the region, and x_c and y_c are the coordinates of the region’s weighted centroid.

weighted_moments_hu : tuple
Hu moments (translation, scale and rotation invariant) of intensity image.
weighted_moments_normalized : (3, 3) ndarray

Normalized moments (translation and scale invariant) of intensity image up to 3rd order:

wnu_ji = wmu_ji / wm_00^[(i+j)/2 + 1]

where wm_00 is the zeroth spatial moment (intensity-weighted area).

[1]http://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.regionprops
get_voronoi_map()[source]

Returns the vornoi image in which the region pixels values are all equal to the index of the points array used to calculate the voronoi diagram. The voronoi image is used as data strcuture to determine the points index related to a voronoi region

Returns:voronoi image
Return type:2d array

Features

class Features.Features(data_frame)[source]

contain the dataframe

get_dataframe()[source]

returns the data frame contining the feature values

save(storage_name, type_storage='file', do_append=True)[source]

save the current dataframe into the type of storage given in input.

Parameters:
  • storage_name (string) – storage name, (e.g., file name if ‘ storage type is ‘file’)
  • type_storage (string) – type of storage (default is ‘file’) (‘db’, ‘json’ will be future implementations)
  • do_append (boolean) – if True it appends to existing storage. If False it creates a new storage

if ‘do_append=True’: This version of the method does not check whether the new data are consistent with presisitng data into the existing storage. It just tris to append the date and might fail or not depending on the type of storage :returns: 1 if sucessuful otherwise 0 :rtype: int

Example:
>>> import Voronoi_Features as VF
>>> vor = VF.Voronoi([X,Y],1000,500)
>>> features = vor.features(['label', 'area','perimeter', 'centroid'])
>>> features.save('my_file_name')