Open Source Python API for bilder
Vitenskapelig bildeanalyse, filtrering og restaurering av bilder via Python API.
Sikit-Image er et åpen kildekode Python API for bildebehandling. API-en gir et bredt spekter av bildebehandlingsrutiner i Python. Ved å bruke API kan du trekke ut data fra spesifikke, vitenskapelige og generelle bilder, bruke NumPy-operasjoner for bildemanipulering, generere strukturerende elementer, blokkere visninger på bilder, manipulere eksponering og fargekanaler, administrere kanter og linjer og utføre geometriske transformasjoner.
Videre tillater API filtrering og restaurering av bilder. Du kan fjerne småskalaobjekter i gråtonebilder, bruke slemme filtre, usharp maskering og mer. Ikke bare dette, API tillater mye flere funksjoner for å manipulere bilder.
Komme i gang med Sikit-Image
Den anbefalte måten å installere Sikit-Image på er via Pip. Vennligst bruk følgende kommando for å installere Sikit-Image.
Installer Sikit-Image via Pip
pip install scikit-image
Manipuler eksponerings- og fargekanaler via Python
Sikit-Image API gjør det mulig å manipulere farger og eksponering av bilder programmatisk. Du kan konvertere og RGB-bilde til et gråtonebilde eller HSV-bilde. Du kan jobbe med histogramtilpasning, immunhistokjemisk farging av fargeseparasjon, toning av gråskalabilder, histogramutjevning, justering av gamma- og loggkontrast, filtrering av regionale maksima og tilpasning av gråskalafiltre til RGB-bilder
Geometriske transformasjoner ved hjelp av gratis Python API
Sikit-Image API gjør det mulig å manipulere farger og eksponering av bilder programmatisk. Du kan konvertere et RGB-bilde til et gråtonebilde eller HSV-bilde. Du kan jobbe med histogramtilpasning, immunhistokjemisk farging av fargeseparasjon, toning av gråskalabilder, histogramutjevning, justering av gamma- og loggkontrast, filtrering av regionale maksima og tilpasning av gråskalafiltre til RGB-bilder
Utfør geometriske transformasjoner via 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()
Bildefiltrering og restaurering via Python
Scikit-Image-biblioteket lar utviklere filtrere og gjenopprette bilder programmatisk. Du kan fjerne små objekter fra gråtonebilder med et topphat-filter, bruke Windows-funksjoner med bilder, bruke slemme filtre, bruke uskarp maskering, bruke bildedekonvolvering og mer.
Utfør bildefiltrering via 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()