old_contents: """
  =========================
  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) > 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()
  
new_contents: """
  =========================
  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()
  
subject: Use nearest neighbour interpolation to avoid different labels