FREEMAT Επεξεργασία εικόνας
Ορισμοί Επεξεργασία εικόνας => ασχολείται με την αλλαγή των χαρακτηριστικών μιας εικόνας, προκειμένου Να βελτιώσουμε την πληροφορία της εικόνας ώστε να φαίνεται καλύτερη στο ανθρώπινο μάτι ( οι άνθρωποι θέλουν τις εικόνες τους ευκρινείς, καθαρές και λεπτομερείς), Να καταστεί περισσότερο κατάλληλη μία εικόνα για την επεξεργασία της από ηλεκτρονικό υπολογιστή Ψηφιακή εικόνα: αποτελείται από ένα δισδιάστατο ή τρισδιάστατο πίνακα εικονοστοιχείων (pixels). Κάθε pixel περιέχει έναν αριθμό ή περισσότερους αριθμούς που μας δείχνει μία τιμή στην κλίμακα του γκρι ή σε έγχρωμη κλίμακα που έχει εκχωρηθεί σε αυτό.
Ορισμοί Binary: Κάθε pixel είναι μαύρο ή άσπρο. Εφόσον υπάρχουν δύο μόνο τιμές που μπορεί να πάρει ένα pixel χρειαζόμαστε μόνο ένα bit για κάθε pixel. Greyscale: Κάθε pixel παίρνει μία τιμή γκρίζου , από το 0 (μαύρο) μέχρι το 255 (άσπρο) όπως φαίνεται στη παρακάτω εικόνα.
Ορισμοί True colour, or RGB: Κάθε pixel έχει μία τιμή χρώματος , και το χρώμα περιγράφεται με βάση το ποσοστό που περιέχει σε κόκκινο(Red), μπλε(Blue), πράσινο (Green) . Κάθε ένα από αυτά τα RGB στοιχεία μπορεί να πάρει τιμή 0-255 (αυτό μας δίνει =16,777,216 διαφορετικά πιθανά χρώματα στην εικόνα)
Συναρτήσεις imread χρησιμοποιείται για να διαβάσει ένα αρχείο εικόνας με μια συγκεκριμένη μορφή. Γενικά η εντολή imread διαβάζει τις τιμές των pixels της εικόνας και επιστρέφει ένα πίνακα με όλες αυτές τις τιμές. Επομένως έχουμε διαβάσει την εικόνα και την έχουμε πλέον σε ένα πίνακα στο freemat , οπότε μπορούμε να εφαρμόσουμε οτιδήποτε λειτουργίες θέλουμε πάνω σε αυτόν τον πίνακα. image εμφανίζει μια εικόνα σε freemat figure. colormap μπορεί να χρησιμοποιηθεί για να αλλάξει μια έγχρωμη εικόνα σε ασπρόμαυρη.
Δημιουργία μιας πρώτης εικόνας 1ο βήμα: δημιουργήστε ένα πίνακα x πολλαπλασιάζοντας Το αντίστροφο array του linspace(-1,1,512) με Το array ones(1,512) 2o βήμα: υπολογίστε τον πίνακα y ως αντίστροφο πίνακα του x 3ο βήμα δημιουργήστε την εικόνα σας Ζ μέσω της συνάρτησης exp(-(x.^2+y.^2)/0.3 4ο βήμα: εμφανίστε την εικόνα σας με την συνάρτηση image σε μια εικόνα figure(1) x = linspace(-1,1,512)’ *ones(1,512); y = x'; Z = exp(-(x.^2+y.^2)/0.3); figure(1); image(Z);
Αλλαγή χρώματος σε αποχρώσεις του χάλκινου και γκρι figure(2); colormap(copper); image(Z); figure(3); colormap(gray); Προσθέστε στο προηγούμενο πρόγραμμα την συνάρτηση colormap με όρισμα copper και ξαναεμφανίστε την εικόνα σε διαφορετικό παράθυρο Προσθέστε στο προηγούμενο πρόγραμμα την συνάρτηση colormap με όρισμα gray και ξαναεμφανίστε την εικόνα σε διαφορετικό παράθυρο
Δημιουργία χρωμάτων Για να δείτε τις αναλογίες της μεταβλητής copper δώστε σε μια μεταβλητή a την τιμή copper και χρησιμοποιήστε την συνάρτηση plot πάνω στην a Δημιουργήστε τις δικές σας αποχρώσεις (colormap) μεταφέροντας τα 3 χρώματα σε γκαουσιανές καμπύλες μέσω των εντολών: t = linspace(0,1,256); A = [exp(-(t-1.0).^2/0.1);exp(-(t-0.5).^2/0.1);exp(-t.^2/0.1)]'; plot(A); Και εφαρμόστε στο προηγούμενο πρόγραμμα εμφανίζοντας ξανά την εικόνα Ομαλοποιήστε τα όρια των χρωμάτων χρησιμοποιώντας τις εντολές w = sqrt(sum(A'.^2)); sA = diag(1./w)*A; plot(sA); Και εφαρμόστε ξανά στην εικόνα σας Ποιες διαφορές παρατηρείται
Άσκηση 2 Γράψτε τις κατάλληλες γραμμές κώδικα ώστε το αρχείο‐εικόνα img_new να το μετατρέψετε σε grayscale με βάσει μία από τις τρεις μεθόδους και σε διαφορετικό παράθυρο κάθε φορά : Μέθοδος 1 : R’=G’=B’ = R+G+B/3 Μέθοδος 2 : R’=G’=B’ = 0.2126*R+0.7152*G+0.0722*B Μέθοδος 3 : R’=G’=B’ = 0.299*R+0.587*G+0.114*B Επιλέξτε μία από τις τρεις μεθόδους ώστε να είναι ενεργοποιημένη και να παραχθεί η grayscale εικόνα. Με την εντολή imwrite(gray img_new, filename) δημιουργήστε ένα αρχείο με το όνομα filename το οποίο θα είναι η εικόνα που δημιουργήσατε.
Άσκηση 3 Δημιουργήστε τις αποχρώσεις του παρακάτω πίνακα σε διαφορετικό παράθυρο η καθεμία