API на Python с отворен код за изображения
Научен анализ на изображения, филтриране и възстановяване на изображения чрез Python API.
Sikit-Image е API на Python с отворен код за обработка на изображения. API предоставя широк набор от рутинни процедури за обработка на изображения в Python. С помощта на API можете да извличате данни от специфични, научни и изображения с общо предназначение, да използвате операции на NumPy за манипулиране на изображения, да генерирате структурни елементи, да блокирате изгледи на изображения, да манипулирате експозиция и цветни канали, да управлявате ръбове и линии и да извършвате геометрични трансформации.
Освен това API позволява филтриране и възстановяване на изображения. Можете да премахвате дребномащабни обекти в изображения в сива скала, да използвате средни филтри, usharp маскиране и др. Не само това, API позволява много повече функции за манипулиране на изображения.
Първи стъпки със 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 позволява на разработчиците да филтрират и възстановяват изображения програмно. Можете да премахвате малки обекти от изображения в сивата скала с филтър с цилиндрична шапка, да използвате функции на Windows с изображения, да използвате средни филтри, да използвате маскиране с нерезкост, да използвате деконволюция на изображението и др.
Извършете филтриране на изображения чрез 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()