Ανοιχτού κώδικα Python API για εικόνες

Επιστημονική Ανάλυση Εικόνων, Φιλτράρισμα και Επαναφορά εικόνων μέσω Python API.

Το Sikit-Image είναι ένα ανοιχτού κώδικα Python API για επεξεργασία εικόνας. Το API παρέχει ένα ευρύ φάσμα ρουτινών επεξεργασίας εικόνας στην Python. Χρησιμοποιώντας το API, μπορείτε να εξαγάγετε δεδομένα από εικόνες ειδικού, επιστημονικού και γενικού σκοπού, να χρησιμοποιήσετε λειτουργίες NumPy για χειρισμό εικόνας, να δημιουργήσετε στοιχεία δομής, να μπλοκάρετε προβολές σε εικόνες, να χειριστείτε κανάλια έκθεσης και χρώματος, να διαχειριστείτε άκρες και γραμμές και να εκτελέσετε γεωμετρικούς μετασχηματισμούς.

Επιπλέον, το API επιτρέπει το φιλτράρισμα και την αποκατάσταση εικόνων. Μπορείτε να αφαιρέσετε αντικείμενα μικρής κλίμακας σε εικόνες σε κλίμακα του γκρι, να χρησιμοποιήσετε φίλτρα μέσης τιμής, απόκρυψη αιχμής και πολλά άλλα. Όχι μόνο αυτό, το API επιτρέπει πολύ περισσότερες δυνατότητες χειρισμού εικόνων.

Previous Next

Ξεκινώντας με το Sikit-Image

Ο προτεινόμενος τρόπος εγκατάστασης του Sikit-Image είναι μέσω του Pip. Χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε το Sikit-Image.

Εγκαταστήστε το Sikit-Image μέσω Pip

pip install scikit-image

Χειριστείτε τα κανάλια έκθεσης και χρώματος μέσω Python

Το Sikit-Image API επιτρέπει τον χειρισμό του χρώματος και της έκθεσης των εικόνων μέσω προγραμματισμού. Μπορείτε να μετατρέψετε και την εικόνα RGB σε εικόνα κλίμακας του γκρι ή εικόνα HSV. Μπορείτε να εργαστείτε για αντιστοίχιση ιστογράμματος, διαχωρισμό χρωμάτων ανοσοϊστοχημικής χρώσης, χρωματισμό εικόνων σε κλίμακα του γκρι, εξισορρόπηση ιστογράμματος, ρύθμιση αντίθεσης γάμμα και καταγραφής, φιλτράρισμα περιφερειακών μέγιστων και προσαρμογή φίλτρων κλίμακας του γκρι σε εικόνες RGB

Γεωμετρικοί μετασχηματισμοί με χρήση δωρεάν Python API

Το Sikit-Image API επιτρέπει τον χειρισμό του χρώματος και της έκθεσης των εικόνων μέσω προγραμματισμού. Μπορείτε να μετατρέψετε μια εικόνα 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()
 Ελληνικά