Διαχείριση και επεξεργασία εικόνας στην γλώσσα προγραμματισμού Python

Στο wiki αυτό θα μάθουμε να διαχειριζόμαστε και γενικότερα επεξεργαζόμαστε πολυκάναλες εικόνες με τηνγλώσσα προγραμματισμού Python. Θα ξεκινήσουμε από απλές λειτουργίες όπως ανάγνωση εικόνας και μετατροπές της σε διάφορες τυποποιήσεις (format) και θα προχωρήσουμε σε πιο σύνθετα θέματα (φίλτρα, μορφολογικοί τελεστές, κατάτμηση) :-)

Εισαγωγή

Ελεύθερα βιβλία για τηγλώσσα προγραμματισμού Python στο διαδίκτυο:
i. A Bite of Python:http://www.swaroopch.com/notes/Python
ii. Dive into Python:http://www.diveintopython.net/
iii. Ελληνική κοινότητα Python:http://python.org.gr/

Αρχικά να σημειωθεί (όπως μάλλον είναι γνωστό :-)), ότι μια εικόνα είναι ένα πλέγμα (πίνακας) με τιμές φωτεινότητας.
Στην python υπάρχουν πολλοί τρόποι για να “ανοίξουμε” μια εικόνα (ή αλλιώς έναν πίνακα). Προς το παρόν, θα ασχοληθούμε μόνο με εικόνες χωρίς γεωαναφορά.

Βιβλιοθήκες Numpy και Scipy

numpy: συλλογή συναρτήσεων και τύπων που αποσκοπεί στην επίλυση μαθηματικών προβλημάτων.

  • Διαθέτει ένα βασικό τύπο δεδομένων, τον πολυδιάστατο πίνακα(multi-dimensional array, ndarray).
  • Για τoν ndarray, υπάρχουν έτοιμες ρουτίνες για αριθμητική ανάλυση, γραμμική άλγεβρα, μιγαδικούς αριθμούς, ανάλυση Fourier κλπ.

scipy: είναι συμπληρωματική της numpy και παρέχει ρουτίνες και αλγορίθμους για πιο σύνθετες επιστημονικές διαδικασίες όπως:
* Γραμμική παλινδρόμηση
* Φίλτρα
* Ανάλυση σήματος
* Μαθηματική Μορφολογία
* Ανάλυση εικόνας
* Στατιστική, και πολλά άλλα.
*Εδώ είναι το εγχειρίδιο αναφοράς

Παράδειγμα πράξεων πινάκων
#Αrray operations with numpy
import numpy as np
a = np.array([20,30,40,50])
b = np.array([0,1,2,3])
# array subtraction
c = a-b
c
array([20,29,38,47])

Εισαγωγή και απεικόνιση εικόνων

  1. Στην python, μια εικόνα μπορεί να φορτωθεί σε τύπο δεδομένων array και εφόσον φορτωθεί μπορόυν να πραγματοποιηθούν διάφορες μαθηματικές πράξεις με τα δεδομένα των εικόνων, για όλα τα κανάλια και για όλα τα εικονοστοιχεία.
  2. Εναλλακτικά, υπάρχει μια πιο εξειδικευμένη βιβλιοθήκη επεξεργασίας εικόνας που ονομάζεται PIL(Python Image Library), η οποία υποστηρίζει περισσότερα πρότυπα (format) εικόνων και διαθέτει επιπλέον αλγορίθμους επεξεργασίας εικόνας. Η βιβλιοθήκη αυτή δεν λειτουργεί με τύπους array, αλλά διαθέτει έναν πιο ειδικό (και πιο γρήγορο) τύπο Image.http://www.pythonware.com/library/pil/handbook/
  3. Προσοχή: Οι βιβλιοθήκες scipy και PIL δεν μπορούν να εισάγουν πολυφασματικά δεδομένα
     
    python_image_processing.txt · Τελευταία τροποποίηση: 2015/07/25 17:56 από evi