API Python de código abierto para imágenes
Análisis científico de imágenes, filtrado y restauración de imágenes a través de la API de Python.
Sikit-Image es una API de Python de código abierto para el procesamiento de imágenes. La API proporciona una amplia gama de rutinas de procesamiento de imágenes en Python. Con la API, puede extraer datos de imágenes específicas, científicas y de propósito general, usar operaciones NumPy para manipular imágenes, generar elementos de estructuración, bloquear vistas en imágenes, manipular canales de exposición y color, administrar bordes y líneas y realizar transformaciones geométricas.
Además, la API permite el filtrado y restauración de imágenes. Puede eliminar objetos a pequeña escala en imágenes en escala de grises, usar filtros medios, enmascaramiento usharp y más. No solo esto, la API permite muchas más funciones para manipular imágenes.
Primeros pasos con Sikit-Image
La forma recomendada de instalar Sikit-Image es a través de Pip. Utilice el siguiente comando para instalar Sikit-Image.
Instalar Sikit-Image a través de Pip
pip install scikit-image
Manipule los canales de exposición y color a través de Python
Sikit-Image API permite manipular el color y la exposición de las imágenes mediante programación. Puede convertir una imagen RGB en una imagen en escala de grises o una imagen HSV. Puede trabajar en la coincidencia de histogramas, la separación de colores de tinción inmunohistoquímica, el teñido de imágenes en escala de grises, la ecualización de histogramas, el ajuste de contraste gamma y logarítmico, el filtrado de máximos regionales y la adaptación de filtros de escala de grises a imágenes RGB.
Transformaciones geométricas utilizando la API gratuita de Python
Sikit-Image API permite manipular el color y la exposición de las imágenes mediante programación. Puede convertir una imagen RGB en una imagen en escala de grises o una imagen HSV. Puede trabajar en la coincidencia de histogramas, la separación de colores de tinción inmunohistoquímica, el teñido de imágenes en escala de grises, la ecualización de histogramas, el ajuste de contraste gamma y logarítmico, el filtrado de máximos regionales y la adaptación de filtros de escala de grises a imágenes RGB.
Realizar transformaciones geométricas a través de 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()
Filtrado y restauración de imágenes a través de Python
La biblioteca Scikit-Image permite a los desarrolladores filtrar y restaurar imágenes mediante programación. Puede eliminar objetos pequeños de imágenes en escala de grises con un filtro de sombrero de copa, usar funciones de Windows con imágenes, usar filtros medios, usar máscaras de enfoque, usar desconvolución de imágenes y más.
Realizar filtrado de imágenes a través de 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()