Găsirea contururilor

Procesarea imaginilor în Python

Rebeca Gonzalez

Data Engineer

Găsirea contururilor

  • Măsurarea dimensiunii
  • Clasificarea formelor
  • Determinarea numărului de obiecte

Puncte totale pe piese domino: 29.

Procesarea imaginilor în Python

Imagini binare

Se poate obține o imagine binară prin prag de binarizare sau detecție de margini

Procesarea imaginilor în Python

Găsirea contururilor cu scikit-image

Pregătirea imaginii

Transformați imaginea în tonuri de gri (2D).

# Make the image grayscale
image = color.rgb2gray(image)

Procesarea imaginilor în Python

Găsirea contururilor cu scikit-image

Pregătirea imaginii

Binarizați imaginea

# Obtain the thresh value
thresh = threshold_otsu(image)

# Apply thresholding
thresholded_image = image > thresh

Procesarea imaginilor în Python

Găsirea contururilor cu scikit-image

Apoi utilizați find_contours().

# Import the measure module
from skimage import measure

# Find contours at a constant value of 0.8
contours = measure.find_contours(thresholded_image, 0.8)

Procesarea imaginilor în Python

Valoare de nivel constantă

Procesarea imaginilor în Python

Pașii pentru identificarea contururilor

from skimage import measure
from skimage.filters import threshold_otsu

# Make the image grayscale
image = color.rgb2gray(image)

# Obtain the optimal thresh value of the image thresh = threshold_otsu(image) # Apply thresholding and obtain binary image thresholded_image = image > thresh
# Find contours at a constant value of 0.8 contours = measure.find_contours(thresholded_image, 0.8)
Procesarea imaginilor în Python

Pașii pentru identificarea contururilor

Rezultat

Procesarea imaginilor în Python

Forma unui contur

Contururi: listă de ndarray-uri (n,2).

for contour in contours:
    print(contour.shape)
(433, 2)
(433, 2)
(401, 2)
(401, 2) 
(123, 2)
(123, 2) 
(59, 2)
(59, 2)
(59, 2)
(57, 2)
(57, 2)
(59, 2)
(59, 2)

Procesarea imaginilor în Python

Forma unui contur

for contour in contours:
    print(contour.shape)
(433, 2)
(433, 2) --> Outer border
(401, 2)
(401, 2)
(123, 2)
(123, 2)
(59, 2)
(59, 2)
(59, 2)
(57, 2)
(57, 2)
(59, 2)
(59, 2) 

Procesarea imaginilor în Python

Forma unui contur

for contour in contours:
    print(contour.shape)
(433, 2)
(433, 2) --> Outer border
(401, 2)
(401, 2) --> Inner border
(123, 2)
(123, 2) 
(59, 2)
(59, 2)
(59, 2)
(57, 2)
(57, 2)
(59, 2)
(59, 2) 

Procesarea imaginilor în Python

Forma unui contur

for contour in contours:
    print(contour.shape)
(433, 2)
(433, 2) --> Outer border
(401, 2)
(401, 2) --> Inner border
(123, 2)
(123, 2) --> Divisory line of tokens
(59, 2)
(59, 2)
(59, 2)
(57, 2)
(57, 2)
(59, 2)
(59, 2) 

Procesarea imaginilor în Python

Forma unui contur

for contour in contours:
    print(contour.shape)
(433, 2)
(433, 2) --> Outer border
(401, 2)
(401, 2) --> Inner border
(123, 2)
(123, 2) --> Divisory line of tokens
(59, 2)
(59, 2)
(59, 2)
(57, 2)
(57, 2)
(59, 2)
(59, 2) --> Dots 

Număr de puncte: 7.

Procesarea imaginilor în Python

Să exersăm!

Procesarea imaginilor în Python

Preparing Video For Download...