рд╕реНрдХрд┐рдЯрд┐рдЯ-рдЗрдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди

рдереНрд░реЗрд╢реЛрд▓реНрдбрд┐рдВрдЧ


рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рдКрдкрд░ рдпрд╛ рдиреАрдЪреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрдирдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдБ рджрд╣рд▓реАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд┐рд▓реНрдо рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧ рд╢рд╛рдпрдж рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЙрд╕ рдпреБрдЧ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡рд┐рдЬреНрдЮрд╛рди рдХрдерд╛ рдлрд┐рд▓реНрдо рдереАред рдлрд┐рд▓реНрдо рдореЗрдВ, рдЬреЗрдореНрд╕ рдХреИрдорд░реВрди рдиреЗ рджреГрд╢реНрдп рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА, рдЬрд┐рд╕рдиреЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рдирд╛рдордХ рд╕рд╛рдЗрдмрд░рдмрд╛рдЧ рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдкреАрдЫреЗ рдЫрд┐рдкрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдпрд╣ рдкреНрд░рднрд╛рд╡ "рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рд╡рд┐рдЬрди" (рдЕрдВрдЧреНрд░реЗрдЬреА рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рд╡рд┐рдЬрди) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╛рдпрдиреЗ рдореЗрдВ, рдЙрд╕рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд┐рд▓реНрд╣реВрдЯ рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ред рдпрд╣ рддрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдЪрд┐рдд рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдЖрдЬ рдХрдИ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди


рдЫрд╡рд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо scikit-image, Python рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред

Scikit рдЫрд╡рд┐


рдЫрд╡рд┐

рд╕реНрдХрд┐рдХрд┐рдЯ-рдЗрдореЗрдЬ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред

рд╕реНрдерд╛рдкрдирд╛


scikit-image рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:

pip install -U scikit-image(Linux and OSX) pip install scikit-image(Windows) # For Conda-based distributions conda install scikit-image 



рдЕрдЬрдЧрд░ рдЫрд╡рд┐ рдЕрд╡рд▓реЛрдХрди


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рддрдХрдиреАрдХреА рдкрд╣рд▓реБрдУрдВ рдкрд░ рдЙрддрд░реЗрдВ, рд╕реНрдХрд┐рдХрд┐рдЯ рдЫрд╡рд┐ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдпрд╣ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕реНрдХрд┐рдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдЫрд╡рд┐ рдЖрдпрд╛рдд рдХрд░реЗрдВ


рд╕реНрдХрд┐рдореЗрдЬ рдбреЗрдЯрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЬреЗрдкреАрдИрдЬреА рдпрд╛ рдкреАрдПрдирдЬреА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред

 from skimage import data import numpy as np import matplotlib.pyplot as plt image = data.binary_blobs() plt.imshow(image, cmap='gray') 

рд╕реНрдХрд┐рдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд░рдВрдЧреАрди рдЫрд╡рд┐ рдЖрдпрд╛рдд рдХрд░реЗрдВ


 from skimage import data import numpy as np import matplotlib.pyplot as plt image = data.astronaut() plt.imshow(image) 



рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдЖрдпрд╛рдд рдХрд░реЗрдВ


 # The I/O module is used for importing the image from skimage import data import numpy as np import matplotlib.pyplot as plt from skimage import io image = io.imread('skimage_logo.png') plt.imshow(image); 



рдХрдИ рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ


 images = io.ImageCollection('../images/*.png:../images/*.jpg') print('Type:', type(images)) images.files Out[]: Type: <class 'skimage.io.collection.ImageCollection'> 

рдмрдЪрдд рдЫрд╡рд┐рдпрд╛рдБ


 #Saving file as 'logo.png' io.imsave('logo.png', logo) 

рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди


рдЕрдм рдЬрдм рд╣рдореЗрдВ рд╕реНрдХреЛрд░-рдЫрд╡рд┐ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рд╣рдо рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВред рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдПрдХ рдбрд┐рдЬрд┐рдЯрд▓ рдЫрд╡рд┐ рдХреЛ рдХрдИ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЫрд╡рд┐ рдирд┐рд░реВрдкрдг рдФрд░ / рдпрд╛ рдХреБрдЫ рдФрд░ рд╕рд╛рд░реНрдердХ рдФрд░ рдЖрд╕рд╛рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓ рд╕рдХреЗрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рд╢рд┐рдХреНрд╖рдХ (рдкрд░реНрдпрд╡реЗрдХреНрд╖рд┐рдд) рдФрд░ рдПрдХ рд╢рд┐рдХреНрд╖рдХ (рдмрд┐рдирд╛ рдкрдврд╝реЗ-рд▓рд┐рдЦреЗ) рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдЦрд╛рдП рдЧрдП рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред


рд╡рд┐рднрд╛рдЬрди рдХреЗ рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реНрдХрд┐рдЯрд┐рдЯ-рдЗрдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди: рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬреНрдЮрд╛рди, рд╕рдВрднрд╡рддрдГ рдорд╛рдирд╡ рдЗрдирдкреБрдЯ рд╕реЗ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди: рдкреВрд░реНрд╡ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрднреА рднреА рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдЗрд╕реЗ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЫрд╡рд┐ рдкрд░ рдЖрдЬрд╝рдорд╛рдПрдВ рдЬреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдХрд┐рдЯ-рдЗрдореЗрдЬ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

рдирд┐рдпрдорд┐рдд рдЖрдпрд╛рдд


 import numpy as np import matplotlib.pyplot as plt import skimage.data as data import skimage.segmentation as seg import skimage.filters as filters import skimage.draw as draw import skimage.color as color 

рд╕рд╛рдзрд╛рд░рдг рдЗрдореЗрдЬрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛

 def image_show(image, nrows=1, ncols=1, cmap='gray'): fig, ax = plt.subplots(nrows=nrows, ncols=ncols, figsize=(14, 14)) ax.imshow(image, cmap='gray') ax.axis('off') return fig, ax 

рдЫрд╡рд┐


 text = data.page() image_show(text) 



рдпрд╣ рдЫрд╡рд┐ рдереЛрдбрд╝реА рдЧрд╣рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣рдо рдЕрднреА рднреА рдПрдХ рдореВрд▓реНрдп рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЙрдЪрд┐рдд рд╡рд┐рднрд╛рдЬрди рджреЗрдЧрд╛ред рдЕрдм, рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдЪреБрдирдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рддреАрд╡реНрд░рддрд╛ рд╡рд╛рд▓реЗ рдЪрд┐рддреНрд░ рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдПрдХ рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХреНрд╕ рдЕрдХреНрд╖ рдЙрди рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЫрд╡рд┐ рдореЗрдВ рд╣реИрдВ, рдФрд░ рд╡рд╛рдИ рдЕрдХреНрд╖ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

 fig, ax = plt.subplots(1, 1) ax.hist(text.ravel(), bins=32, range=[0, 256]) ax.set_xlim(0, 256); 



рд╣рдорд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг 8-рдмрд┐рдЯ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде 256 рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди рд╣реИрдВред рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рдЙрдЬреНрдЬреНрд╡рд▓ рдкрд┐рдХреНрд╕рд▓ (0: рдХрд╛рд▓рд╛, 255: рд╕рдлреЗрдж) рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд╕реБрдВрджрд░ рдкреНрд░рдХрд╛рд╢ рдкрд╛рда рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдХреА рдереЛрдбрд╝рд╛ рдзреБрдВрдзрд▓рд╛ рд╣реИред рдПрдХ рдЖрджрд░реНрд╢ рд╡рд┐рднрд╛рдЬрди рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдмрд┐рдореЛрдбрд▓ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╣рдо рдмреАрдЪ рдореЗрдВ рдПрдХ рдирдВрдмрд░ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХреЗрдВред рдЕрдм рдЪрд▓реЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рджрд╣рд▓реАрдЬ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдЦрдВрдбрд┐рдд рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдирд┐рдпрдВрддреНрд░рд┐рдд рджрд╣рд▓реАрдЬ


рдЪреВрдВрдХрд┐ рд╣рдо рдЦреБрдж рдПрдХ рд╕реАрдорд╛ рдореВрд▓реНрдп рдЪреБрдирддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реАрдорд╛ рдореВрд▓реНрдп рдХрд╣рддреЗ рд╣реИрдВред

 text_segmented = text > (value concluded from histogram ie 50,70,120 ) image_show(text_segmented); 


рдмрд╛рдпрд╛рдВ: рдкрд╛рда> 50 | рдордзреНрдп: рдкрд╛рда> 70 | рд╕рд╣реА: рдкрд╛рда> 120

рд╣рдореЗрдВ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдИрдВ рдУрд░ рдЫрд╛рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рддреА рд╣реИред рдЖрдЗрдП рдЕрдм рдмрд┐рдирд╛ рд╕реАрдорд╛ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рджрд╣рд▓реАрдЬ


рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдереНрд░реЗрд╢реЛрд▓реНрдб рд╕реНрдХреИрдЯрд┐рдХ-рдЫрд╡рд┐ рдореЗрдВ рдХрдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдирд┐рд░реНрдзрд╛рд░рдг рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╖реНрдЯрддрдо рд╕реАрдорд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп рдЗрдирдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рддрд░реАрдХреЗ рджрд┐рдП рдЧрдП рд╣реИрдВ: рдУрддреНрд╕реВ, рд▓реА, рд╕реНрдерд╛рдиреАрдпред

 text_threshold = filters.threshold_ # Hit tab with the cursor after the underscore to get all the methods. image_show(text < text_threshold); 


рд╡рд╛рдо рдУрддреНрд╕реБ || рдЕрдзрд┐рдХрд╛рд░: рд▓реА

рд╕реНрдерд╛рдиреАрдп рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ block_size рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдСрдлрд╕реЗрдЯ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

 text_threshold = filters.threshold_local(text,block_size=51, offset=10) image_show(text > text_threshold); 



рдпрд╣ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рднрд╛рд╡ рджреЗрддреА рд╣реИред рдХрд╛рдлреА рд╣рдж рддрдХ, рдХреЛрдИ рднреА рд╢реЛрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди


рдереНрд░реЗрд╕рд╣реЛрд▓реНрдбрд┐рдВрдЧ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╡рд┐рднрд╛рдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрдЪреНрдЪ-рд╡рд┐рдкрд░реАрдд рдЫрд╡рд┐ рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рдЦрдВрдбрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 # import the image from skimage import io image = io.imread('girl.jpg') plt.imshow(image); 



рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдХреБрдЫ рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реЛрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЫрд╡рд┐ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╢реЛрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЕрдЧрд▓рд╛ рдХрджрдо rgb2gray рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдХреЛ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред

 image_gray = color.rgb2gray(image) image_show(image_gray); 



рд╣рдо рджреЛ рд╡рд┐рднрд╛рдЬрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рд╕рдХреНрд░рд┐рдп рд╕рдореЛрдЪреНрдЪ рд╡рд┐рднрд╛рдЬрди


рд╕рдХреНрд░рд┐рдп рдкрде рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдПрдХ рд╕рд╛рдВрдк рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрде рдпрд╛ рдмреНрдпрд╛рдЬ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдкрде рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдВрдХреБрдЪрд┐рдд рдФрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рдЙрджрд╛рд╣рд░рдг рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╕рд╛рдВрдк рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╡ рд╕рд┐рд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЪрдХреНрд░ рдмрдирд╛рдПрдВред

 def circle_points(resolution, center, radius): """ Generate points which define a circle on an image.Centre refers to the centre of the circle """ radians = np.linspace(0, 2*np.pi, resolution) c = center[1] + radius*np.cos(radians)#polar co-ordinates r = center[0] + radius*np.sin(radians) return np.array([c, r]).T # Exclude last point because a closed path should not have duplicate points points = circle_points(200, [80, 250], 80)[:-1] 

рдЙрдкрд░реЛрдХреНрдд рдЧрдгрдирд╛ рд╕рд░реНрдХрд▓ рдХреА рдкрд░рд┐рдзрд┐ рдкрд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ x рдФрд░ y рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдордиреЗ 200 рдХрд╛ рд╕рдВрдХрд▓реНрдк рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ 200 рдРрд╕реЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред

 fig, ax = image_show(image) ax.plot(points[:, 0], points[:, 1], '--r', lw=3) 



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рддрдм рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреЛ рд╢реЗрд╖ рдЫрд╡рд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ, рдЪреЗрд╣рд░реЗ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдПрдХ рдмрдВрдж рд╡рдХреНрд░ рдлрд┐рдЯрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред



рд╣рдо рдЕрд▓реНрдлрд╛ рдФрд░ рдмреАрдЯрд╛ рдирд╛рдордХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдЪреНрдЪ рдЕрд▓реНрдлрд╛ рдорд╛рди рд╡рдХреНрд░ рдХреЛ рддреЗрдЬреА рд╕реЗ рдЕрдиреБрдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмреАрдЯрд╛ рд╡рдХреНрд░ рдХреЛ рдЪрд┐рдХрдирд╛ рдмрдирд╛рддрд╛ рд╣реИред

 snake = seg.active_contour(image_gray, points,alpha=0.06,beta=0.3) fig, ax = image_show(image) ax.plot(points[:, 0], points[:, 1], '--r', lw=3) ax.plot(snake[:, 0], snake[:, 1], '-b', lw=3); 



рд░реИрдВрдбрдо рд╡реЙрдХрд░ рд╡рд┐рднрд╛рдЬрди


рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рд▓реЗрдмрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓реЗрдмрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдЙрд╕ рд▓реЗрдмрд▓ рдкрд░ рдЖрд░реЗрдЦрд┐рдд рдХрд░рдХреЗ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪрддрдо рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрдк рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдЗрд╕ рдХрд╛рдо рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрд┐рдЫрд▓реЗ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдЖрдЗрдП рд╕рд░реНрдХрд┐рд▓ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдЯрд┐рдХреЗ рд░рд╣реЗрдВред

 image_labels = np.zeros(image_gray.shape, dtype=np.uint8) 

рд░реИрдВрдбрдо рдкрд╛рд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдмрд▓ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреВрд░реЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рд░реНрдХрд▓ рд╣реЛрдЧрд╛, рдФрд░ рдЪреЗрд╣рд░реЗ рдХреЗ рдордзреНрдп рдХреЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдЫреЛрдЯрд╛ рд╕рд░реНрдХрд▓ рд╣реЛрдЧрд╛ред

 indices = draw.circle_perimeter(80, 250,20)#from here image_labels[indices] = 1 image_labels[points[:, 1].astype(np.int), points[:, 0].astype(np.int)] = 2 image_show(image_labels); 


рдЕрдм рд░реИрдВрдбрдо рд╡реЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

 image_segmented = seg.random_walker(image_gray, image_labels) # Check our results fig, ax = image_show(image_gray) ax.imshow(image_segmented == 1, alpha=0.3); 



рдкрд░рд┐рдгрд╛рдо рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЪреЗрд╣рд░реЗ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд░рдЦрд╛ рдЧрдпрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рддрдХ рдорд╛рд░реНрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдИ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдо рдореВрд▓реНрдп рдХреЛ 3000 рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

 image_segmented = seg.random_walker(image_gray, image_labels, beta = 3000) # Check our results fig, ax = image_show(image_gray) ax.imshow(image_segmented == 1, alpha=0.3); 



рдпрд╣ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдХреБрдЫ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рджреЗрдЦрдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджреЗрдирд╛ рд╣реИ рдФрд░ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд┐рднрд╛рдЬрди рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВред

рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди


рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдРрд╕реА рдЫрд╡рд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЗрддрдиреА рдмрдбрд╝реА рд╣реЛ рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкрд┐рдХреНрд╕рд▓ рдХреЛ рджреЗрдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рднрд╛рдЬрди рдЫрд╡рд┐ рдХреЛ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓рд╛рдЦреЛрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЗ рдкрд╛рд╕ рджрд╕рд┐рдпреЛрдВ рдпрд╛ рд╕реИрдХрдбрд╝реЛрдВ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдЖрдЗрдП рджреЛ рдРрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреЗрдЦреЗрдВ:

рд╕рд░рд▓ рд░реИрдЦрд┐рдХ Iterative рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ


рд╡рд┐рдзрд┐ (рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рд░рд▓ рд░реИрдЦрд┐рдХ Iterative рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдпрд╛ SLIC) K- рдореАрдиреНрд╕ рдирд╛рдордХ рдПрдХ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЫрд╡рд┐ рдХреЗ рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рджрд┐рдП рдЧрдП рдЙрдк-рдбреЛрдореЗрди рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдкрдврд╝реЗрдВред

рдПрд╕рдПрд▓рдЖрдИрд╕реА рд╡рд┐рднрд┐рдиреНрди рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдореВрд▓ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

 image_slic = seg.slic(image,n_segments=155) 

рд╣рдореЗрдВ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдПрдХ рдЫрд╡рд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред

 # label2rgb replaces each discrete label with the average interior color image_show(color.label2rgb(image_slic, image, kind='avg')); 



рд╣рдордиреЗ рдЗрд╕ рдЫрд╡рд┐ рдХреЛ 512 * 512 = 262,000 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдШрдЯрд╛рдХрд░ 155 рдЦрдВрдб рдХрд░ рджрд┐рдпрд╛ред

Felzenszwalb


рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдиреНрдпреВрдирддрдо рдлреИрд▓реЗ рд╣реБрдП рд╡реГрдХреНрд╖реЛрдВ рдХрд╛ рд╕рдореВрд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреЗрд▓рдЬреЗрдиреНрд╕реНрд╡рд┐рдм рдиреЗ рд╣рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдмрддрд╛рдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЫрд╡рд┐ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрдЧреАред рд╡рд╣ рдЙрддрдиреЗ рд╣реА рд╕рдореВрд╣реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬрд┐рддрдирд╛ рд╡рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рджреЗрдЦрддрд╛ рд╣реИред

 image_felzenszwalb = seg.felzenszwalb(image) image_show(image_felzenszwalb); 



рдЪрд┐рддреНрд░ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдЖрдЗрдП рдЕрджреНрд╡рд┐рддреАрдп рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред

 np.unique(image_felzenszwalb).size 3368 

рдЕрдм рд╣рдо рдЦрдВрдб рдкрд░ рдФрд╕рдд рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ SLIC рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред

 image_felzenszwalb_colored = color.label2rgb(image_felzenszwalb, image, kind='avg') image_show(image_felzenszwalb_colored); 

рдЕрдм рд╣рдореЗрдВ рдХрдо рдЦрдВрдб рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдФрд░ рднреА рдХрдо рдЦрдВрдб рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрдХреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХрднреА-рдХрднреА рдЕрддрд┐-рд╡рд┐рднрд╛рдЬрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ рдПрдХ рдкреЛрд╕реНрдЯрд░рд╛рдЗрдЬреНрдб рдЗрдореЗрдЬ рдХреА рддрд░рд╣ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд░рдВрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдореА рд╣реИред рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЖрд░рдПрдЬреА)ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрдореЗрдЬ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрд╕рдВрдзрд╛рди рдХрд╛ рдПрдХ рд╕рдХреНрд░рд┐рдп рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рд╕реЗ рд▓реЗрдХрд░ рдЪрд┐рдХрд┐рддреНрд╕рд╛ рдЪрд┐рддреНрд░, рдпрд╛рддрд╛рдпрд╛рдд рдФрд░ рд╡реАрдбрд┐рдпреЛ рдирд┐рдЧрд░рд╛рдиреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдкрд╛рдпрдерди рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдПрдХ рдордЬрдмреВрдд рд╕реНрдХрд┐рдЯ-рдЗрдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореБрдлреНрдд рдФрд░ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХреЗ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред рдореВрд▓ рд▓реЗрдЦ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/hi441006/


All Articles