"""
=========================
Measure region properties
=========================

This example shows how to measure properties of labelled image regions.
"""

import math
import matplotlib.pyplot as plt
import numpy as np

from skimage.util import img_as_ubyte
from skimage.draw import ellipse
from skimage.morphology import label
from skimage.measure import regionprops
from skimage.transform import rotate


image = np.zeros((600, 600))

rr, cc = ellipse(300, 350, 100, 220)
image[rr,cc] = 1

image = rotate(image, angle=15, order=0)

label_img = label(image)
props = regionprops(label_img, [
    'BoundingBox',
    'Centroid',
    'Orientation',
    'MajorAxisLength',
    'MinorAxisLength'
])

plt.imshow(image)

for prop in props:
    x0 = prop['Centroid'][1]
    y0 = prop['Centroid'][0]
    x1 = x0 + math.cos(prop['Orientation']) * 0.5 * prop['MajorAxisLength']
    y1 = y0 - math.sin(prop['Orientation']) * 0.5 * prop['MajorAxisLength']
    x2 = x0 - math.sin(prop['Orientation']) * 0.5 * prop['MinorAxisLength']
    y2 = y0 - math.cos(prop['Orientation']) * 0.5 * prop['MinorAxisLength']

    plt.plot((x0, x1), (y0, y1), '-r', linewidth=2.5)
    plt.plot((x0, x2), (y0, y2), '-r', linewidth=2.5)
    plt.plot(x0, y0, '.g', markersize=15)

    minr, minc, maxr, maxc = prop['BoundingBox']
    bx = (minc, maxc, maxc, minc, minc)
    by = (minr, minr, maxr, maxr, minr)
    plt.plot(bx, by, '-b', linewidth=2.5)

plt.gray()
plt.axis((0, 600, 600, 0))
plt.show()

"""
=========================
Measure region properties
=========================

This example shows how to measure properties of labelled image regions.
"""

import math
import matplotlib.pyplot as plt
import numpy as np

from skimage.draw import ellipse
from skimage.morphology import label
from skimage.measure import regionprops
from skimage.transform import rotate


image = np.zeros((600, 600))

rr, cc = ellipse(300, 350, 100, 220)
image[rr,cc] = 1

image = rotate(image, angle=15, order=0)

label_img = label(image)
props = regionprops(label_img, [
    'BoundingBox',
    'Centroid',
    'Orientation',
    'MajorAxisLength',
    'MinorAxisLength'
])

plt.imshow(image)

for prop in props:
    x0 = prop['Centroid'][1]
    y0 = prop['Centroid'][0]
    x1 = x0 + math.cos(prop['Orientation']) * 0.5 * prop['MajorAxisLength']
    y1 = y0 - math.sin(prop['Orientation']) * 0.5 * prop['MajorAxisLength']
    x2 = x0 - math.sin(prop['Orientation']) * 0.5 * prop['MinorAxisLength']
    y2 = y0 - math.cos(prop['Orientation']) * 0.5 * prop['MinorAxisLength']

    plt.plot((x0, x1), (y0, y1), '-r', linewidth=2.5)
    plt.plot((x0, x2), (y0, y2), '-r', linewidth=2.5)
    plt.plot(x0, y0, '.g', markersize=15)

    minr, minc, maxr, maxc = prop['BoundingBox']
    bx = (minc, maxc, maxc, minc, minc)
    by = (minr, minr, maxr, maxr, minr)
    plt.plot(bx, by, '-b', linewidth=2.5)

plt.gray()
plt.axis((0, 600, 600, 0))
plt.show()

Remove unused import