API Python з відкритим кодом для зображень

Науковий аналіз зображень, фільтрація та відновлення зображень через Python API.

Sikit-Image — це API Python з відкритим кодом для обробки зображень. API надає широкий спектр процедур обробки зображень у Python. Використовуючи API, ви можете отримувати дані з конкретних, наукових зображень і зображень загального призначення, використовувати операції NumPy для маніпулювання зображеннями, генерувати структурні елементи, блокувати перегляди зображень, керувати експозицією та кольоровими каналами, керувати краями та лініями та виконувати геометричні перетворення.

Крім того, API дозволяє фільтрувати та відновлювати зображення. Ви можете видаляти дрібні об’єкти із зображень у відтінках сірого, використовувати середні фільтри, маскування usharp тощо. Крім того, API надає набагато більше можливостей для обробки зображень.

Previous Next

Початок роботи з Sikit-Image

Рекомендований спосіб встановлення Sikit-Image — через Pip. Для встановлення Sikit-Image використовуйте наступну команду.

Встановіть Sikit-Image через Pip

pip install scikit-image

Керуйте експозицією та кольоровими каналами за допомогою Python

API Sikit-Image дозволяє програмно керувати кольором і експозицією зображень. Ви можете перетворити RGB-зображення на зображення у градаціях сірого або зображення HSV. Ви можете працювати над зіставленням гістограм, розділенням кольорів імуногістохімічного фарбування, тонуванням сірих зображень, вирівнюванням гістограм, налаштуванням гамма- та логарифмічного контрасту, фільтрацією регіональних максимумів і адаптацією фільтрів сірого до зображень RGB

Геометричні перетворення за допомогою безкоштовного API Python

API Sikit-Image дозволяє програмно керувати кольором і експозицією зображень. Ви можете перетворити зображення RGB на зображення у градаціях сірого або зображення HSV. Ви можете працювати над зіставленням гістограм, розділенням кольорів імуногістохімічного фарбування, тонуванням сірих зображень, вирівнюванням гістограм, налаштуванням гамма- та логарифмічного контрасту, фільтрацією регіональних максимумів і адаптацією фільтрів сірого до зображень RGB

Виконуйте геометричні перетворення за допомогою 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()

Фільтрування та відновлення зображень за допомогою Python

Бібліотека Scikit-Image дозволяє розробникам програмно фільтрувати та відновлювати зображення. Ви можете видаляти дрібні об’єкти із зображень у градаціях сірого за допомогою фільтра циліндрів, використовувати функції вікон із зображеннями, використовувати середні фільтри, використовувати нерізке маскування, використовувати деконволюцію зображення тощо.

Виконайте фільтрацію зображень за допомогою 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()
 Українська