Εργαλεία Χρήστη

Εργαλεία ιστότοπου


python_image_processing

Βλέπετε μια παλαιότερη έκδοση της σελίδας!


Διαχείριση και επεξεργασία εικόνας στην γλώσσα προγραμματισμού 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. Προσοχή: Οι βιβλιοθήκες scipy και PIL δεν μπορούν να εισάγουν πολυφασματικά δεδομένα ή εικόνες που έχουν γεωαναγορά.
  2. Ωστόσο, μπορούμε να διαβάσουμε τηλεπισκοπικές εικόνες με PIL ή scipy που έχουν 3 ή 1 φασματικά κανάλια, ειδικά αν η εικόνα δεν έχει γεωαναφορά.
  3. Η πλέον κατάλληλη βιβλιοθήκη για ανάγνωση και εγγραφή τηλεπισκοπικών εικόνων είναι η GDAL.
  4. Η βιβλιοθήκη matplotlib είναι μια από τις πιο ευέλικτες και εύχρηστες βιβλιοθήκες για απεικόνιση γραφημάτων (όπως πχ. ιστογραμμάτων) αλλά και εικόνων.

Διάβασμα εικόνας με τη scipy:

import scipy as sp
file = 'my_image.jpg'
img = sp.misc.imread(file)

Διαστάσεις εικόνας:

# Get image dimensions
img.shape
python_image_processing.1437827158.txt.gz · Τελευταία τροποποίηση: 2020/11/21 09:52 (εξωτερική τροποποίηση)