קוד פתוח של Python API עבור תמונות
ניתוח תמונה מדעי, סינון ושחזור תמונות באמצעות Python API.
Sikit-Image הוא קוד פתוח Python API לעיבוד תמונה. ה-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
בצע טרנספורמציות גיאומטריות באמצעות פייתון
# 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()