regionprops
-
skimage.measure.regionprops(label_image, intensity_image=None, cache=True)[source] -
Measure properties of labeled image regions.
Parameters: label_image : (N, M) ndarray
Labeled input image. Labels with value 0 are ignored.
intensity_image : (N, M) ndarray, optional
Intensity (i.e., input) image with same size as labeled image. Default is None.
cache : bool, optional
Determine whether to cache calculated properties. The computation is much faster for cached properties, whereas the memory consumption increases.
Returns: properties : list of RegionProperties
Each item describes one labeled region, and can be accessed using the attributes listed below.
Notes
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) -
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,ycoordinates 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,ycoordinates of the region, andx_candy_care 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_00is 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/2topi/2in 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,ycoordinates 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,ycoordinates of the region, andx_candy_care 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_00is the zeroth spatial moment (intensity-weighted area).
Each region also supports iteration, so that you can do:
for prop in region: print(prop, region[prop])References
[R284] Wilhelm Burger, Mark Burge. Principles of Digital Image Processing: Core Algorithms. Springer-Verlag, London, 2009. [R285] B. Jähne. Digital Image Processing. Springer-Verlag, Berlin-Heidelberg, 6. edition, 2005. [R286] T. H. Reiss. Recognizing Planar Objects Using Invariant Image Features, from Lecture notes in computer science, p. 676. Springer, Berlin, 1993. [R287] http://en.wikipedia.org/wiki/Image_moment Examples
>>> from skimage import data, util >>> from skimage.measure import label >>> img = util.img_as_ubyte(data.coins()) > 110 >>> label_img = label(img, connectivity=img.ndim) >>> props = regionprops(label_img) >>> # centroid of first labeled object >>> props[0].centroid (22.729879860483141, 81.912285234465827) >>> # centroid of first labeled object >>> props[0]['centroid'] (22.729879860483141, 81.912285234465827)
-
Please login to continue.