Open Source Python API pentru imagini
Analiza științifică a imaginilor, filtrarea și restaurarea imaginilor prin API-ul Python.
Sikit-Image este un API Python open source pentru procesarea imaginilor. API-ul oferă o gamă largă de rutine de procesare a imaginilor în Python. Folosind API-ul, puteți extrage date din imagini specifice, științifice și de uz general, puteți utiliza operațiunile NumPy pentru manipularea imaginilor, puteți genera elemente de structurare, puteți bloca vizualizări pe imagini, puteți manipula canalele de expunere și de culoare, gestionați marginile și liniile și efectuați transformări geometrice.
În plus, API-ul permite filtrarea și restaurarea imaginilor. Puteți elimina obiectele la scară mică din imaginile în tonuri de gri, puteți utiliza filtre medii, mascarea usharp și multe altele. Nu numai asta, API-ul permite mult mai multe funcții pentru a manipula imaginile.
Noțiuni introductive cu Sikit-Image
Modul recomandat de a instala Sikit-Image este prin Pip. Vă rugăm să utilizați următoarea comandă pentru a instala Sikit-Image.
Instalați Sikit-Image prin Pip
pip install scikit-image
Manipulați canalele de expunere și culoare prin Python
Sikit-Image API permite manipularea culorii și expunerea imaginilor în mod programatic. Puteți converti o imagine RGB într-o imagine în tonuri de gri sau într-o imagine HSV. Puteți lucra la potrivirea histogramei, la separarea culorilor colorării imunohistochimice, la nuanțarea imaginilor în tonuri de gri, la egalizarea histogramei, la ajustarea contrastului gamma și log, la filtrarea maximelor regionale și la adaptarea filtrelor în tonuri de gri la imaginile RGB
Transformări geometrice folosind API-ul Python gratuit
Sikit-Image API permite manipularea culorii și expunerea imaginilor în mod programatic. Puteți converti o imagine RGB într-o imagine în tonuri de gri sau într-o imagine HSV. Puteți lucra la potrivirea histogramei, la separarea culorilor colorării imunohistochimice, la nuanțarea imaginilor în tonuri de gri, la egalizarea histogramei, la ajustarea contrastului gamma și log, la filtrarea maximelor regionale și la adaptarea filtrelor în tonuri de gri la imaginile RGB
Efectuați transformări geometrice prin Python
# First we create a transformation using explicit parameters:
tform = transform.SimilarityTransform(scale=1, rotation=math.pi/2,
translation=(0, 1))
print(tform.params)
# Alternatively you can define a transformation by the transformation matrix itself:
matrix = tform.params.copy()
matrix[1, 2] = 2
tform2 = transform.SimilarityTransform(matrix)
# apply forward & inverse coordinate transformations b/t the source & destination coordinate systems:
coord = [1, 0]
print(tform2(coord))
print(tform2.inverse(tform(coord)))
# Geometric transformations to warp images:
text = data.text()
tform = transform.SimilarityTransform(scale=1, rotation=math.pi/4,
translation=(text.shape[0]/2, -100))
rotated = transform.warp(text, tform)
back_rotated = transform.warp(rotated, tform.inverse)
fig, ax = plt.subplots(nrows=3)
ax[0].imshow(text, cmap=plt.cm.gray)
ax[1].imshow(rotated, cmap=plt.cm.gray)
ax[2].imshow(back_rotated, cmap=plt.cm.gray)
for a in ax:
a.axis('off')
plt.tight_layout()
Filtrarea și restaurarea imaginilor prin Python
Biblioteca Scikit-Image permite dezvoltatorilor să filtreze și să restaureze imaginile în mod programatic. Puteți elimina obiecte mici din imaginile în tonuri de gri cu un filtru de top hat, puteți utiliza funcțiile Windows cu imagini, puteți utiliza filtre medii, utilizați mascarea neclară, folosiți deconvoluția imaginii și multe altele.
Efectuați filtrarea imaginilor prin Python
# Let us load an image available through scikit-image’s data registry.
image = data.astronaut()
image = color.rgb2gray(image)
# Let us blur this image with a series of uniform filters of increasing size.
blurred_images = [ndi.uniform_filter(image, size=k) for k in range(2, 32, 2)]
img_stack = np.stack(blurred_images)
fig = px.imshow(
img_stack,
animation_frame=0,
binary_string=True,
labels={'animation_frame': 'blur strength ~'}
)
plotly.io.show(fig)
# Plot blur metric
B = pd.DataFrame(
data=np.zeros((len(blurred_images), 3)),
columns=['h_size = 3', 'h_size = 11', 'h_size = 30']
)
for ind, im in enumerate(blurred_images):
B.loc[ind, 'h_size = 3'] = measure.blur_effect(im, h_size=3)
B.loc[ind, 'h_size = 11'] = measure.blur_effect(im, h_size=11)
B.loc[ind, 'h_size = 30'] = measure.blur_effect(im, h_size=30)
B.plot().set(xlabel='blur strength (half the size of uniform filter)',
ylabel='blur metric');
plt.show()