ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΒΙΟΜΙΙΧΑΝΊΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΗΤ\ ΧΙΑΚΗ ΕΡΓΑΣΙΑ



Σχετικά έγγραφα
ΠΡΟΣΩ ΟΛΟΤΑΧΩΣ! ΑΝΑΓΕΝΝΗΣΗ ΤΗΣ ΕΛΛΑΔΑΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

Το συνέδριο σας πραγματοποιείται σε μια εξαιρετικά δύσκολη συγκυρία για τον τόπο, την οικονομία της χώρας, την κοινωνία και τον κόσμο της εργασίας.

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

ΤΡΟΠΟΛΟΓΙΑ-ΠΡΟΣΘΗΚΗ ΑΙΤΙΟΛΟΓΙΚΗ ΕΚΘΕΣΗ Άρθρο...

ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΓΕΝΙΚΩΝ ΚΑΙ ΕΙΔΙΚΩΝ ΟΡΩΝ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ «ΑΣΦΑΛΩΣ ΚΑΤΟΙΚΕΙΝ» ΚΟΙΝΟΧΡΗΣΤΟΙ ΧΩΡΟΙ

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 3: Το παράδειγμα της Τρέισι Λάτιμερ (συνέχεια) Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Μια «γριά» νέα. Εύα Παπώτη

11. Προϋπολογισμός Προϋπολογισμός και αποδοτικότητα δημοσίων υπηρεσιών: υφιστάμενη κατάσταση

ΕΝΗΜΕΡΩΤΙΚΟ ΈΓΓΡΑΦΟ Σ.Ε.Ε.Δ.Δ.Ε. ΟΙ ΕΠΙΒΑΡΥΝΣΕΙΣ ΤΟΥ ΝΕΟΥ ΦΟΡΟΛΟΓΙΚΟΥ

Συνωμοσία Πυρήνων της Φωτιάς - Πυρήνας Αντάρτικου Πόλης

Γνωρίζω, Αγαπώ & Φροντίζω το Σώμα μου


Απώλεια και μετασχηματισμοί της τραυματικής εμπειρίας. Παντελής Παπαδόπουλος

Η συμβολή του Πλάτωνα στα Μαθηματικά

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Συνοπτική Παρουσίαση. Ελλάδα

ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

ΤΕΧΝΙΚΟ ΕΠΙΜΕΛΗΤΗΡΙΟ ΕΛΛΑΔΑΣ & ΠΕΡΙΦΕΡΕΙΑΚΟ ΤΜΗΜΑ ΚΕΝΤΡΙΚΗΣ ΚΑΙ ΔΥΤΙΚΗΣ ΘΕΣΣΑΛΙΑΣ ΤΟΥ Τ.Ε.Ε.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΔΙΔΑΣΚΑΛΕΙΟ ΔΗΜΟΤΙΚΗΣ ΕΚΠΑΙΔΕΥΣΗΣ «ΑΛΕΞΑΝΔΡΟΣ ΔΕΛΜΟΥΖΟΣ» «ΠΑΙΔΙΚΗ ΛΟΓΟΤΕΧΝΙΑ ΚΑΙ ΕΙΔΙΚΗ ΑΓΩΓΗ» ΔΙΔΑΣΚΩΝ: ΔΗΜΗΤΡΗΣ ΚΟΚΚΙΝΟΣ

ΠΟΙΟΤΙΚΗ ΔΙΕΡΕΥΝΗΣΗ ΤΩΝ ΑΠΟΨΕΩΝ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΚΟΙΝΩΝΙΑΣ ΓΙΑ ΤΗ ΣΥΓΚΡΟΤΗΣΗ ΤΗΣ ΙΔΑΝΙΚΗΣ ΠΟΛΙΤΕΙΑΣ

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ

ΔΙΑΧΡΟΝΙΚΗ ΜΕΛΕΤΗ ΦΟΡΟΛΟΓΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΜΕ ΜΕΘΟΔΟΥΣ ΑΝΑΛΥΣΗΣ ΔΕΔΟΜΕΝΩΝ

Πρακτικό 6/2012 της συνεδρίασης της Επιτροπής Ποιότητας Ζωής, του Δήμου Λήμνου, της 4ης Μαΐου 2012.

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά

Φλωρεντία, 10 Δεκεμβρίου 1513 Προς τον: ΦΡΑΓΚΙΣΚΟ ΒΕΤΤΟΡΙ, Πρέσβη της Φλωρεντίας στην Αγία Παπική Έδρα, Ρώμη. Εξοχώτατε Πρέσβη,

Το ολοκαύτωμα της Κάσου

Η ΑΣΤΡΟΝΟΜΙΑ ΣΤΗΝ ΑΡΧΑΙΑ ΕΛΛΑΔΑ

Ενώνουμε δυνάμεις. Δείγματα Γραφής. Δυναμικά μπροστά ΑΝΔΡΕΑΣ Ζ. ΚΥΠΡΙΑΝΟΥ. Βουλευτής

Ατομικό ιστορικό νηπίου

Η ΔΙΑΘΕΜΑΤΙΚΗ ΤΗΣ ΔΙΑΘΕΜΑΤΙΚΗΣ

1. Εισαγωγή. 2. Καταπολέμηση της φοροδιαφυγής

Ηλεκτρικό φορτίο Ηλεκτρική δύναμη

Σχολικός εκφοβισµός και γονείς

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ. Θέμα πτυχιακής εργασίας:

Το σύμπαν μέσα στο οποίο αναδύεστε

ΦΙΛΟΣΟΦΙΑ ΤΟΥ ΔΙΚΑΙΟΥ. Ενότητα 7: Σχέση δικαίου-ηθικής-πολιτικής. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

ΣΥΓΚΡΙΣΗ ΣΥΜΒΑΤΙΚΗΣ ΚΑΙ ΜΗΧΑΝΟΠΟΙΗΜΕΝΗΣ ΜΕΘΟΔΟΥ ΣΠΟΡΑΣ ΚΑΙ ΜΕΤΑΦΥΤΕΥΣΗΣ ΣΠΟΡΟΦΥΤΩΝ ΛΑΧΑΝΙΚΩΝ

«ΤΑ ΧΕΛΙΔΟΝΙΣΜΑΤΑ»- ΤΟ ΤΡΑΓΟΥΔΙ ΤΗΣ ΧΕΛΙΔΟΝΑΣ

Οι Πνευματικές Δυνάμεις στο Σύμπαν

ΠΡΩΤΟ ΚΕΦΑΛΑΙΟ. Γενικές πληροφορίες Πού βρίσκομαι;

ΚΩ ΙΚΑΣ ΕΟΝΤΟΛΟΓΙΑΣ ΤΗΣ ΕΤΑΙΡΕΙΑΣ ΜΕ ΤΗΝ ΕΠΩΝΥΜΙΑ «ΠΑΠΟΥΤΣΑΝΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΤΑΝΑΛΩΤΙΚΩΝ ΑΓΑΘΩΝ»

Λόγος Επίκαιρος. Αυτοί που είπαν την αλήθεια, τι κατάλαβαν από τη ζωή; ΛΕΝΕ!!! Και αυτοί που δεν την είπαν, τι κατάλαβαν από τη ζωή; ΛΕΜΕ!!!

ΚΕΦ. 1 Η ΛΟΓΙΣΤΙΚΗ ΚΑΙ Η ΣΗΜΑΣΙΑ ΤΗΣ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

* Από την αγγλική λέξη «boss», αφεντικό. ** «Core houses» στο πρωτότυπο, μικρά ισόγεια σπίτια ανθεκτικής κατασκευής με πρόβλεψη επέκτασης. (Σ.τ.Ε.

ΚΕΙΜΕΝΟ-ΑΠΑΝΤΗΣΗ ΤΩΝ ΜΑΧΟΜΕΝΩΝ ΛΑΪΚΩΝ ΕΠΑΝΑΣΤΑΤΙΚΩΝ ΔΥΝΑΜΕΩΝ ΓΙΑ ΔΗΜΟΣΙΕΥΜΑΤΑ ΠΟΥ ΑΦΟΡΟΥΣΑΝ ΣΤΗΝ ΕΠΙΘΕΣΗ ΤΗΣ ΟΡΓΑΝΩΣΗΣ ΣΤΟ ΝΕΟ ΗΡΑΚΛΕΙΟ

Α.Τ.Ε.Ι. ΚΑΛΑΜΑΤΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣΗ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΚΑΙ ΕΛΕΓΚΤΙΚΗΣ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ Σ.Δ.0. ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. ΘΕΜΑ: Πόσο εφικτή είναι η προσχώριση της Τουρκίας στην Ευρωπαϊκή Ένωση;

Περιβάλλον και Ανάπτυξη ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Γραμματικογιάννης Α. Ηλίας. Επιβλέπων: Καθηγητής Δ. Ρόκος

Η υιοθεσία στην Ελλάδα

Φιλοσοφία και επιστήμες στον 20ό αιώνα: Γόνιμες αλλά δύσκολες σχέσεις

Υποψήφιοι Σχολικοί Σύμβουλοι

ΠΕΡΙΛΗΨΗ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ

Οι ΕΔ που χρειάζεται η χώρα

ΑΝΑΚΟΙΝΩΣΗ ΥΠ ΑΡΙΘΜ. ΣΟΧ 3/2015. Για την πρόσληψη Πτυχιούχων Φυσικής Αγωγής. με σύμβαση εργασίας Ιδιωτικού Δικαίου Ορισμένου Χρόνου (Ι.Δ.Ο.Χ.

αρχαιολόγος- μουσειολόγος- ξεναγός, ΜΑ

Το Ταξίδι Απελευθέρωσης

1932, πτώχευση. Οι πολίτες κλήθηκαν από πατριωτικό καθήκον να δώσουν τα κοσμήματά για να ενισχυθούν τα αποθέματα της χώρας σε χρυσό

ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟΝ ΕΣΩΤΕΡΙΚΟ ΚΑΙ ΕΞΩΤΕΡΙΚΟ ΠΕΛΑΤΗ

προβλήματα, εγώ θέλω να είμαι συγκεκριμένος. Έχω μπροστά μου και σας την αναφέρω την

Η ΨΥΧΗ ΚΑΙ Ο ΘΑΝΑΤΟΣ ( 1 )

Το Article 27 αναφέρεται στο κομμάτι του Καταστατικού των Η.Ε. κατά το οποίο δίνεται το δικαίωμα του βέτο στα μόνιμα μέλη του Συμβουλίου Ασφαλείας.

5 η Ενότητα Κουλτούρα και στρατηγική

θεωρητική και εθνογραφική τεκμηρίωση ορίων και σχέσεων των μουσικών δικτύων του σύγχρονου πανηγυριού

ΟΜΙΛΙΑ ΠΡΟΕΔΡΟΥ Ο.Κ.Ε. κ. Χ. ΠΟΛΥΖΩΓΟΠΟΥΛΟΥ

Συνήγορος του Καταναλωτή Νομολογία ΕφΑθ 5253/2003

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

Ξαναδίνουμε ζωή στο δικό μας ΗΡΑΚΛΕΙΟ Δ.Α.Σ.Η. ΓΙΩΡΓΟΣ ΜΑΣΤΟΡΑΚΟΣ. Δημοτική Ανεξάρτητη Συνεργασία Ηρακλείου

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ (Τ.Ε.Ι.Κ.) ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ (ΣΤΕΓ) ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ (Φ.Π.) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Ο αρτινός συγγραφέας Γιάννης Καλπούζος, μιλάει στην «Γ», με την ευκαιρία της έκδοσης του νέου του βιβλίου

Βουλευτικές Εκλογές 2011

«Συλλογή, μεταφορά και διαχείριση επικίνδυνων στερεών αποβλήτων της Γ.Μ.Μ.Α.Ε. ΛΑΡΚΟ»

Συνταξιοδοτικός ΠΟΕΔΗΝ. Μετά την εφαρμογή των νόμων Ν.4336/2015, Ν.4337/2015. Πίνακες με τα νέα όρια ηλικίας συνταξιοδότησης Δημόσιο.

Υπουργοί μεταπράτες της διαφθοράς! Απασφαλίστε για το μεγάλο ΠΗΔΗΜΑ!!! Κυριάκου Κόκκινου *

ΓΕΝΙΚΟΣ ΚΑΝΟΝΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ ΕΡΓΑΣΤΗΡΙΩΝ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ

Ένας περίπατος στη Μονή Καισαριανής

Πρόγραμμα Σπουδών για το "Νέο Σχολείο"

Κρύων της Μαγνητικής Υπηρεσίας. Πνευματική Ανατομική. Μάθημα 3ο ~ Εργασία με το Κόλον

"Παράθυρο" στη γνώση οι τηλεδιασκέψεις με σχολεία της Διασποράς, που διοργανώνει η Εστία Επιστημών Πάτρας

Πρακτικό εργαλείο. για την ταυτοποίηση πρώτου επιπέδου των θυμάτων παράνομης διακίνησης και εμπορίας. τη σεξουαλική εκμετάλλευση

Σε ποιες κατηγορίες μειώνεται η σύνταξη από 1/1/2009 (σε εφαρμογή του Ν.3655/2008)

ΠΑΙΔΑΓΩΓΙΚΗ ΣΧΟΛΗ (ΦΛΩΡΙΝΑ) ΤΜΗΜΑ ΝΗΠΙΑΓΩΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΔΙΔΑΚΤΙΚΗΣ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΠΑΡΑΓΩΓΗΣ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ

Αναλυτικές οδηγίες διακοπής καπνίσματος βήμα προς βήμα

ΣΥΜΜΟΡΦΩΣΗ ΜΕ ΤΙΣ ΝΕΕΣ ΠΟΛΙΤΙΚΕΣ ΕΡΓΑΣΙΑΣ ΠΕΡΙΛΗΨΗ

Κωδ : Οι κωδικοί αυτοί συμπληρώνονται από την φορολογική διοίκηση. Κωδ. 003: Γράψτε τη Δ.Ο.Υ. της έδρας ή του κεντρικού της επιχείρησής σας.

Κυρίες και κύριοι συνάδελφοι, Η κατάσταση στη χώρα, κ. Πρωθυπουργέ, είναι πολύ ανησυχητική. Η κοινωνία βράζει. Η οικονομία βυθίζεται.

Κατερίνα Παναγοπούλου: Δημιουργώντας κοινωνικό κεφάλαιο την εποχή της κρίσης

Σηµειώσεις στο ταξινοµούµε

Ομιλία του Υφυπουργού Ανάπτυξης κου Θανάση Σκορδά στο CapitalVision 2012

Κεφάλαιο Πέμπτο Εθνοπολιτισμική Ζωή και Εμπειρίες Ελληνικότητας των Ελληνοαυστραλών Εφήβων

ΓΙΩΡΓΟΣ ΜΠΛΑΝΑΣ ΓΙΑ ΤΟΝ ΑΝΑΡΧΙΣΜΟ

Αναγκαιότητα και ελευθερία. Ποιος κυβερνάει επιτέλους αυτόν τον Κόσμο;

Κύριε υπουργέ και όσοι υπάλληλοι βαθμολογούνται κάτω από τη βάση θα απολύονται;

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 10: Φιλοσοφική Συμβουλευτική. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

Χρηματοδότηση των Συλλόγων στην εποχή της κρίσης

Όταν το μάθημα της πληροφορικής γίνεται ανθρωποκεντρικό μπορεί να αφορά και την εφηβεία.

ΕΙΣΗΓΗΣΗ ΤΟΥ Δ.Σ. ΣΤΗ ΓΕΝΙΚΗ ΣΥΝΕΛΕΥΣΗ ΤΟΥ ΣΥΝΔΙΚΑΤΟΥ ΟΙΚΟΔΟΜΩΝ ΑΘΗΝΑΣ ΤΗΝ ΚΥΡΙΑΚΗ 25/10/2015

ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ ΤΜΗΜΑ ΑΓΡΟΤΙΚΗ ΑΝΑΠΤΥΞΗ & ΔΙΟΙΚΗΣΗ ΑΓΡΟΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΤΜΗΜΑ ΒΙΟΜΙΙΧΑΝΊΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΗΤ\ ΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ ΕΦΑΡΜΟΓΗ ΕΠΕΞΕΡΓΑΣΙΑΣ ΒΙΝΤΕΟ ΜΕ ΤΗ ΧΡΗΣΗ ΦΙΛΤΡΩΝ ΟΝΟΜ/ΝΥΜΟ: ΣΤΑΜΑΤΗΣ ΠΑΝΑΓΙΩΤΗΣ Α.Ε.Μ. : 1047 ΤΣΙΚΤΣΙΡΗΣΛΗΜΗΤΡΗΣ Α.Ε.Μ : 1226 : ΚΡΗΝΙΑΗΣ ΣΤΥΛΙΑΝΌΣ Καβάλα Φεβρουάριος 2009

Εωαραογή επεξεργασίας βίντεο αε ττι γρτίση φίλτρων Η πτυχιακή αυτή εργασία γράφτηκε κατά τη διάρκεια του ακαδημαϊκού έτους 2008-2009 υπό την εποπτεία του καθηγητή Στέλιου Κρηνίδη. Θα ήθελα να εκφράσω τις ευχαριστίες μου στον κύριο Κρηνίδη για την υποστήριξη του, τις συμβουλές του και για την γενικότερη καθοδήγηση του καθ όλη τη διάρκεια της εκπόνησης αυτής της εργασίας. Θα ήθελα επίσης να ευχαριστήσω θερμά τον Avery Lee, συγγραφέα του προγράμματος, για την βοήθεια που προσέφερε μέσω του forum υποστήριξης. Παναγιώτης Σταμάτης Δημήτρης Τσικτσίρης

EcpgpuoYn εττε^εογασίας Βίντεο αε τη γρήση (οίλτρο)ν Αυτή η σελίδα έμεινε σκόπιμα κενή

{ φαραογή κπίχίίρύασιαο βί\'τί:ο uz τη γρήση φίλτροη Περίληψη......4 1. Εισαγωγή......5 1.1 Πως δουλεύουν τα φίλτρα;... 5 1.2 Τι είναι χρωματικό μοντέλο......6 1.2.1 Το χρωματικό μοντέλο R(.B......6 1.3 Εικονοστοιχείο (Pixel)... 6 1.3.1 Μέγεθος εικονοστοιχείου εικόνας...... 7 1.3.2 Λόγος διάστασης......7 1.3.3 Φωτεινότητα......7 1.4 Χρωματικό βάθος (Color depth)... 8 1.4.1 Αποθηκευτικός χώρος (μνημη)......8 1.4.2 Αναπαράσταση στα 16 bits: Highcolor......8 1.4.3 Αναπαράσταση στα 24 bits... 9 1.4.4 Αναπαράσταση στα 32 bits... 9 1.4.5 Αναπαράσταση στα 48 bits... 9 2. Περιγραφή φίλτρων...... 11 2.1 Φίλτρα αφαίρεσης θορύβου... 11 2.1.1 Γραμμικά φίλτρα......11 2.1.1.1 Κινούμενος μέσος... 11 2.1.2 Μη γραμμικά φίλτρα... 12 2.1.2.1 Φίλτρο ελάχιστου... 12 2.1.2.2 Φίλτρο μέγιστου... 13 2.1.2.3 Φίλτρο εδιάμεσου......14 2.1.2.4 Εξισορρόπηση ιστογράμματος...16 2.2 Φίλτρα προσθήκης θορύβου...... 18 2.2.1 Προσθήκη θορύβου...18 2.2.1.1 Ομοιόμορφος θόρυβος... 19 2.2.1.2 Ααπλασιανός θόρυβος...... 20 2.2.1.3 Gaussian θόρυβος......21 2.2.1.4 Κβαντισμός...... 22 2.3 Φίλτρα γενικής χρήσης... 23 2.3.1 Αποχρωματισμός......23 2.3.2 Αρνητικό... 24 2.3.3 Οριζόντια - Κάθετη αναστροφή...... 24 2.3.3.1 Οριζόντια αναστροφή... 24 2.3.3.2 Κάθετη αναστροφή... 25 3. Πειραματικά αποτελέσματα... 27 3.1. Φίλτρο αποχρωματισμού... 27 3.2. Φίλτρο αρνητικού... 27 3.3. Φίλτρο οριζόντιας και κάθετης αναστροφής... 28 3.4. Φίλτρο εξισορρόπησης ιστογράμματος... 28 3.5. Προσθήκη θορύβου... 28 3.6 Φίλτρο ελάχιστου... 30 3.7 Φίλτρο μεσαίου... 31 3.8 Φίλτρο κινούμενου μέσου... 32 3.9 Φίλτρο μέγιστου... 33 4. Η εφαρμογή......35 5. Επίλογος...... 43 6. Βιβλιογραφία...... 45

ΕωαοαοΎή KnFleovaaiac βίντεο με ττι γρηση φίλτρ(ί)ν Στόχος αυτής της πτυχιακής εργασίας είναι η ψηφιακή επεξεργασία βίντεο με τη δυνατότητα προσθήκης κάποιων φίλτρων. Η επεξεργασία του βίντεο αφορά την σειριακιί εφαρμογή φίλτρων επεξεργασίας εικόνας στα καρέ του και αναγνώρισης προτύπων σε αυτά. Τα βίντεο με τα οποία ασχολείται είναι τα AV1 αρχεία. Τα AVI είναι ο τρόπος αποθήκευσης κινούμενης εικόνας βίντεο που έχει αναπτυχθεί από την Microsoft και χρησιμοποιείται ευρέως στα MS-Windows. Τα φίλτρα θα έχουν τη δυνατότητα να εφαρμοστούν σε ολόκληρο το βίντεο ή σε τμήμα τους, δηλαδή από κάποιο frame του βίντεο μέχρι κάποιο άλλο frame. Επίσης, θα πρέπει να μπορούν να εφαρμοστούν σε τμήμα της κάθε εικόνας του βίντεο, αυτή η δυνατότητα είναι ευρέως γνωστή ως ROI (Region Of Interest). Τα φίλτρα που θα αναπτυχθούν θα είναι τα εξής: 1) αποχρωματισμός, (grayscale), 2) αρνητικό (negate), 3) αναστροφή: a. οριζόντια αναστροφή, (flip Horizontal) b. κάθετη αναστροφή, (flip vertical) 4) αφαίρεση θορύβου: a. φίλτρο μεσαίου, (mean) b. φίλτρο κινούμενου μεσαίου, (average median) c. φίλτρο ισοστάθμισης ιστογράμματος (histogram equalization), d. φίλτρο ελαχίστου (min filter), e. φίλτρο μεγίστου (max filter) 5) προσθήκη θορύβου: a. κανονικός (gaussian) θόρυβος, b. ομοιόμορφος (uniform) θόρυβος, c. λαπλασιανός (laplacian) θόρυβος, d. κβαντισμός (quantization) βίντεο. Η εργασία θα πραγματοποιηθεί στη γλώσσα προγραμματισμού C. Το πρόγραμμα θα περιλαμβάνει παραθυρικό περιβάλλον ανοίγματος του αρχείου (ένα αρχείο κάθε φορά), επιλογής του φίλτρου που επιθυμούμε και των παραμέτρων αυτού μέσω του παραθυρικού περιβάλλοντος. Ετήσης, μέσω του παραθυρικού περιβάλλοντος ο χρήστης θα καθορίζει τα frame του αρχείου βίντεο που θέλει να εφαρμοστούν τα φίλτρα, καθώς και το τμήμα της εικόνας. Τέλος, οι χρήστης θα μπορεί να σώσει το επεξεργασμένο βίντεο σε νέο αρχείο. Στα πλαίσια της εργασίας έχει αναπτυχθεί η εφαρμογή R01 VirtualDub 1.0. Πρόκειται για ένα πρόγραμμα ψηφιακής επεξεργασίας βίντεο σε πραγματικό χρόνο. Ο κώδικας του προγράμματος στηρίζεται στο ευρέως γνωστό πρόγραμμα επεξεργασίας video, VirtualDub. Παράλληλα έχουν δημιουργηθεί και 13 πολύ χρήσιμα φίλτρα. Ο προγραμματισμός έγινε στη γλώσσα προγραμματισμού C-H-, με το περιβάλλον και τη βοήθεια του Visual Studio 8 (2005), επίσης χpεtάστηκε το πακέτο Microsoft Platform SDK for Windows Server 2003 R2 και το Microsoft DirectX SDK (August 2007), καθώς περιέχουν πολλές χρήσιμες βιβλιοθήκες. Οι εικόνες που παρουσιάζονται ή αναφέρονται στην εργασία αυτή, καθώς και τα εργαλεία που χρειάζεται για να γίνει compile το πρόγραμμα μπορούν να βρεθούν στο συνοδευτικό DVD.

ΕωαοαοΎΐΊ επεζεργασίας βίντεο αε τη ypficm φίλτροίν Εισαγωγή Πολλές φορές στη ζωή μας έχουμε καρπωθεί τα ωφέλει από την χρήση ενός φίλτρου χωρίς να το γνωρίζουμε, άραγε πόσες φορές θελήσαμε να δούμε μια παλιά βιντεοκασέτα και το αποτέλεσμα της εικόνας στην οθόνη δεν ήταν αυτό που ήταν κάποτε; Η χρήση ενός φίλτρου κινούμενου μέσου τηθανόν να έκανε το αποτέλεσμα καλύτερο. Άραγε ποιος άνθρωπος δεν χρειάστηκε να βγάλει μια ακτινογραφία στη ζωή του; Αναρωτηθήκατε ποτέ γιατί το αποτέλεσμα είναι πάντα τόσο φωτεινό? Η χρήση ενός φίλτρου ελάχιστου (min filter) τονίζει το χρώμα του κόκαλου στην φωτογραφία για να είναι τηο ευδιάκριτο. Η χρησιμότητα των φίλτρων είναι τεράσηα, υπάρχουν πολλά προβλήματα που μπορεί να συναντήσουμε όταν ασχολούμαστε με ψηφιακό βίντεο. Το μέσο αναπαραγωγής, οι καιρικές συνθήκες, το αποθηκευτικό μέσο, η απόσταση, και πολλά άλλα είναι μερικοί παράγοντες που μπορεί να επηρεάσουν την ποιότητα μιας εικόνας, και λέμε εικόνας γιατί στην ουσία ένα βίντεο αποτελείται από πολλές επιμέρους εικόνες. Η παραμόρφωση της εικόνας και των χρωμάτων της είναι η συχνότερη μορφή θορύβου. Τα φίλτρα που έχουμε φτιάξει χρησιμεύουν κυρίως στην επεξεργασία βίντεο. 1.1 Πως δουλεύουν τα φίλτρα; Τα φίλτρα μπορούμε να πούμε ότι είναι μικρά προγράμματα με κάποιες ενσωματωμένες μαθηματικές η λογικές πράξεις. Για κάθε ίδιο στοιχείο που θα έχε για είσοδο, η έξοδος θα πρέπει να είναι πάντα η ίδια. Όπως βλέπουμε στην παρακάτω εικόνα, τα δεδομένα εισέρχονται δέχονται μια η και περισσότερες επεξεργασίες και στην συνέχεια εξέρχονται, αυτή η διαδικασία λέγεται συχνά και pipeline γιατί μπορούμε να φανταστούμε τη διαδικασία σαν έναν σωλήνα. Q=^D=^[J=^D=^Q!

- 6 - Εωαοαονή επεξεργασίας βίντεο με τη γρήση φίλτρίον 1.2 Τι είναι χρωματικό μοντέλο. Ο όρος χρωματικό μοντέλο χρησιμοποιείται για να περιγράψει ένα τρόπο κωδικοποίησης της χρωματικής πληροφορίας σε μια εικόνα. Γενικά ένα χρωματικό μοντέλο ορίζει ένα σύστημα συντεταγμένων και έναν υποχώρο μέσα σε αυτό όπου κάθε χρώμα αναπαρίσταται σε ένα μοναδικό σημείο. Υπάρχουν πολλά χρωματικά μοντέλα και κάθε ένα από αυτά έχει ως στόχο να εξυπηρετήσει τις διαφορετικές ανάγκες συστημάτων και εφαρμογών που χρησιμοποιούν χρώμα. 1.2.1 Το χρωματικό μοντέλο R(iH Ένα από τα τηο βασικά χρωματικά μοντέλα είναι το RGB. Τα τρία γράμματα του ονόματός του αντιπροσωπεύουν τα τρία βασικά του χρώματα: Red-Κόκκινο, Green-Πράσινο και Blue-Μπλε. Ορίζει ένα τρισδιάστατο Καρτεσιανό σύστημα συντεταγμένων όπου κάθε άξονας αντιπροσωπεύει και ένα από τα βασικά του χρώματα. Κάθε χρώμα αντιπροσωπεύει και ένα διάνυσμα μέσα στο χώρο. Αν αναλυθεί διανυσματικά στις τρεις συνιστώσες των βασικών χρωμάτων, οι τιμές που παίρνουμε αντιπροσωπεύουν την συμμετοχή του αντίστοιχου βασικού χρώματος στο σχηματισμό του αρχικού. Έτσι για παράδειγμα το μοβ χρώμα (magenta) αντιστοιχείται στο διάνυσμα (R,G,B)=(1,0,1) και το κίτρινο στο (R,G,B)=( 1,1,0). Στην αρχή των αξόνων (0,0,0) έχουμε το μαύρο χρώμα και στο σημείο (1,1,1) έχουμε το άσπρο. Κατά μήκος της ευθείας που διέρχεται από την αρχή των αξόνων και το σημείο (1,1,1) βρίσκονται όλες οι αποχρώσεις του γκρι που συναντούνται στις ασπρόμαυρες εικόνες. Πρακτικά δεν μπορούμε να έχουμε πραγματικούς αριθμούς για τις χρωματικές συνιστώσες οπότε κάνουμε ομοιόμορφη κβάντιση όπως και στην περίπτωση των ασπρόμαυρων εικόνων. Εδώ όμως έχουμε τρία χρωματικά κανάλια αντί για ένα. Έτσι αν έχουμε μια RGB εικόνα 24bit (που είναι και η τηο συνήθης περίπτωση έγχρωμων εικόνων) σημαίνει ότι χρησιμοποιούμε 8bit ή 256 στάθμες κβάντισης για το κάθε χρωματικό κανάλι. Συνολικά δηλαδή μπορούμε να αναπαραστήσουμε 16,7εκατ. διαφορετικά χρώματα. 1.3 Εικονοστοιχείο (Pixel) Το εικονοστοιχείο ή πίξελ (pixel, από το Picture ELement = στοιχείο εικόνας) είναι ένα "σημείο" μιας εικόνας που εμφανίζεται στην οθόνη ενός υπολογιστικού συστήματος, δηλαδή, για το υπολογιστικό σύστημα, ένα δείγμα πληροφορίας. Στον υπολογιστή η εικόνα αναπαρίσταται υπό τη μορφή "ψηφιδωτού". Το εικονοστοιχείο είναι, απλά, μια ψηφίδα του ψηφιδωτού αυτού και, ως εκ τούτου, θεωρείται ως το μικρότερο πλήρες δείγμα μιας εικόνας. Στιιν οθόνη ενός υπολογιστή οι εικόνες αναπαριστώνται με "υποδιαίρεση" της οθόνης σε ένα δισδιάστατο πίνακα με στήλες και γραμμές. Κάθε "κελί" σε ένα τέτοιο πίνακα είναι ένα εικονοστοιχείο. Ο αριθμός των υποδιαιρέσεων είναι επαρκώς μεγάλος, τόσο ώστε το ανθρώπινο μάτι να μη μπορεί να διακρίνει το ένα εικονοστοιχείο από το άλλο και να βλέπει τι- ν εικόνα ενιαία. Η ανάλυση ενός μέσου μπορεί να εκφραστεί σε εικονοστοιχείο ανά μονάδα μήκους, για παράδειγμα 2400 πίξελ ανά ίντσα (ppi). Τα σημεία ανά ίντσα (dpi) και τα εικονοστοιχείο ανά ίντσα (ppi) χρησιμοποιούνται μερικές φορές εναλλακτικά, αλλά, καθώς εκφράζουν διαφορετικές έννοιες, αυτό είναι σφάλμα. Ειδικότερα, στον τομέα εκτυπωτών, η μονάδα dpi αποτελεί μέτρο της ευκρίνειας που μπορεί να επιτύχει ο εκτυπωτής (π.χ. πυκνότητα σταγονιδίων μελάνης).

EcpgpuoYii επεξεργασίας βίντεο αε τη Ύοήση (οίλτοο^ν Όσο περισσότερα είναι τα εικονοστοιχεία που χρησιμοποιούνται για να αντιπροσωπεύσουν μια εικόνα, τόσο τηο πολύ το αποτέλεσμα μοιάζει με το πραγματικό. Ο αριθμός εικονοστοιχείων σε μια εικόνα καλείται μερικές φορές ανάλυση, αν και η έννοια αυτή έχει πιο συγκεκριμένο ορισμό. Οι ημές ανάλυσης σε εικονοστοιχεία μπορούν να εκφραστούν είτε ως ενιαίος αριθμός, όπως σε μια ψηφιακή φωτογραφική μηχανή, π.χ. «3 megapixel». Αυτό σημαίνει ότι η μηχανή έχει ονομαστικά τρία εκατομμύρια εικονοστοιχεία, ή ως ζεύγος αριθμών, όπως, π.χ. εικόνα "640 επί 480". Η έκφραση αυτή σημαίνει ότι η εικόνα έχει 640 εικονοστοιχεία κατά μήκος και 480 καθ' ύψος και επομένως συνολικό αριθμό 640 χ 480 = 307.200 εικονοστοιχεία (ή 0,3 megapixels). 1.3.1 Μέγεθος εικονοστοιχείου εικόνας Το μέγεθος ενός εικονοστοιχείου οθόνης καθορίζεται από την ανάλυση της οθόνης και την διαγώνιο της οθόνης. Μερικά παραδείγματα: Ανάλυση οθόνης: 1024x768, Διαγώνιο μέγεθος: 19 ", μέγεθος ηκονοστοιχείου: 0.377mm Ανάλυση οθόνης: 800x600, Διαγώνιο μέγεθος: 17 ", μέγεθος εικονοστοιχείου: 0.4318mm Ανάλυση οθόνης: 640x480, Διαγώνιο μέγεθος: 15 ", μέγεθος εικονοστοιχείου: 0.4763mm 1.3.2 Λόγος διάστασης Τα εικονοστοιχεία μπορεί να έχουν σχήμα είτε ορθογώνιο είτε τετράγωνο. Ένας αριθμός αποκαλούμενος λόγος διάστασης περιγράφει το κατά πόσο πλησιάζει ένα κανονικό τετράγωνο το εκάστοτε εικονοστοιχείο. Παραδείγματος χάριν, λόγος διάστασης 1.25:1 σημαίνει ότι κάθε εικονοστοιχείο είναι 1,25 φορές πιο πλατύ σε σχέση με το ύψος του. Η διαφορά λόγου διάστασης (απεικόνισης) είναι η βασική αιτία που μερικές φορές εικόνες στον υπολογιστή εμφανίζονται παραμορφωμένες, ειδικά στις οθόνες με σταθερή ανάλυση. Ανάλυση Αριθμός πί ελ ^ Λόγος ^ - διάστασης 320x200 64,000 8:5 640x480 307,200 4:3 800x600 480.000 1 4:3 1024x768 786,432 1 4:3 1280x1024 1 1,310,720 1 5:4 1600x1200 1,920,000 4:3 1.3.3 Φωτεινότητα Κάθε εικονοστοιχείο σε μια μονοχρωματική εικόνα έχει μία τιμή φιοτεινότητας. Μια αριθμητική αντιπροσώπευση μηδενός συνήθως αντιπροσωπεύει το μαύρο και η μέγιστη τιμή αντιπροσωπεύει το λευκό. Παραδείγματος χάριν, σε μια εικόνα οκτώ δυαδικών ψηφίων (bits), η μέγιστη τιμή που μπορεί να αναπαρασταθεί από αυτά είναι 2*=256, έτσι το 255 είναι η τιμή που χρησιμοποιείται για το λευκό και η τιμή 0 για το μαύρο.

F.pnp.iovfi επ>-/ρ ηνασίαα βίντγ.ο αε τη γρηση φί>αρ(ΐ)\ Σε μια έγχρωμη εικόνα, κάθε εικονοστοιχείο μπορεί να περιγράφει χρησιμοποιώντας την απόχρωση, τον κορεσμό της. και τη φωτεινότητητά του (hue. saturation, and value: HSV) αλλά αντιπροσωπεύεται συνήθως από τιμές για το κοκκινο. πράσινο, και μπλε (RGB). 1.4 Χρωματικό βάθος (Color depth) Βάθος χρώματος είναι το εύρος των δυαδικών ψηφίων που θα χρησιμοποιήσει ένας υπολογιστής για να αναπαραστήσει το χρώμα κάθε εικοχ οστοιχείου (πίξελ, pixel) μιας εικόνας. Το εύρος αυτό εκφράζεται ως δύναμη του 2 (επειδή η αναπαράσταση στον υπολογιστή είναι δυαδική) και, κατά συνέπεια, μια εικόνα μπορεί να έχει βάθος χρώματος: 2' = 2: Ασπρόμαυρη εικόνα (χωρίς διαβαθμίσεις γκρίζου) 2*: = 256 χρώματα (ή αποχρώσεις του γκρίζου). 21' = 65536 χρώματα. Η εικόνα με αυτό το βάθος χρώματος αναφέρεται και ως Highcolor 2^'* = 16.777.216 χρώματα. Η εικόνα με αυτό το βάθος χρώματος αναφέρεται και ως Truecolor 2''* = Αυτό το βάθος χρώματος υπερβαίνει την διακριτική ικανότητα του ανθρώπινου οφθαλμού. Χρησιμοποιείται, ωστόσο, για πρακτικούς λόγους, από πολλούς σαρωτές. Οι εικόνες που αποτελούνται από 256 χρώματα (ή λιγότερα) αποθηκεύονται συνήθως στην μνήμη ταυ υπολογιστή υπό μορφή μιας παλέτας χρωμάτων. Για βάθη μεγαλύτερα από 8 bit, το κάθε εικονοστοιχείο αναπαρίσταται από ανάλογες διαβαθμίσεις των τριών χρωμάτων RGB (κόκκινο, πράσινο και μπλε). Το βάθος χρώματος των 16 bits "διαιρείται", συνήθως, σε πέντε bitw για κάθε ένα από τα χρώματα κόκκινο και μπλε, και έξι bits για το πράσινο, δεδομένου ότι to ανθρώπινο μάτια είναι πιο ευαίσθητα στην διάκριση διαβαθμίσεων του πράσινου σε σχέση με τα άλλα δύο χρώματα. Άλλες φορές το 16ο bit αναπαριστά τυχόν διαφά\ εια του χρώματος. Στα βάθος χρώματος των 24 bits υπάρχουν 8 bits ανά βασικό χρώμα, δηλαδή 2* = 256 διαβαθμίσεις κάθε βασικού χρώματος. Μερικές φορές μπορεί να χρησιμοποιηθεί και βάθος χρώματος των 32 bits. Σε αυτήν την περίπτωση τα 8 επιπλέον bits χρησιμοποιούνται για να δηλωθεί η συνοχή του χρώματος. 1.4.1 Αποθηκευτικός χώρος (μνήμη) Το πόση μνήμη χρησιμοποιείται από μια ασυμπίεστη εικόνα υπολογίζεται από τον αριθμό εικονοστοιχείων στήν εικόνα και από το βάθος χρώματος κάθε εικονοκύτταρου. Σε μια εικόνα 24-bit, κάθε εικονοστοιχείο χρησιμοποιεί 24 bits μνήμης, έτσι το μέγεθος μνήμης που απαιτείται σε bit είναι 24 X τον αριθμό εικονοκυττάρων. Για να υπολογισθεί η μνήμη που απαιτείτα,ι σε bytes, ο αριθμός που προκύπτει πρέπει να διαιρεθεί με 8 (8 bits σε ένα byte). 1.4.2 Αναπαράσταση στα 16 bits: Highcolor Υπάρχει επίσης to χρωματικό βάθος tvn 16 bpp (μερικές φορές αποκαλούμει-ο Hicolor), στο οποίο υπάρχουν είτε 5 bits ανά χρώμα, γνωστό ως σύστημα 555. είτε ένα πρόσθετο bit για πράσινο (επειδή το μάτι μπορεί να διακρίνει περισσότερες σκιές πράσινου απ ο.τι άλλων χρωμάτων), γνωστό ως σύστημα 565.

t:(pupuoyn Enf-cnpyumuc Βίντεο αε τη γοήστι φίλτρων 1.4.3 Αναπαράσταση στα 24 bits Η αναπαράσταση RGB με τιμές στα 24 bits ανά ετκονοστοιχείο (bpp) είναι, επίσης, γνωστή ως 1ruecolor. Αυτό γίνεται συνήθως με τη χρήση τριών ακέραιων αριθμών, μεταξύ 0 και 255, κάθε ένας από τους οποίους αντιπροσωπεύει την ένταση για τις κόκκινες, πράσινες και μπλε αποχρώσεις. 1.4.4 Αναπαράσταση στα 32 bits Το χρωματικό βάθος 32 bpp είναι σχεδόν πάντα ίδιο σε ακρίβεια με τον 24bpp, με την διαφορά ότι υπάρχουν ακόμα 8 bits ανά εικονοστοιχείο, και αυτά τα οκτώ πρόσθετα bits συχνά δεν χρησιμοποιούνται καθόλου. Ο λόγος για την ύπαρξη του βάθους 32 bpp είναι η υψηλότερη ταχύτητα, με την οποία τα σύγχρονα συστήματα μπορούν να έχουν πρόσβαση στα δεδομένα. Αυτό συμβαίνει επειδή η τεχνολογία των 32 bits των σύγχρονων επεξεργαστών, ταυτίζεται σε μέγεθος με τον χρωματικό χώρο των 32bits. Μερικές κάρτες γραφικών χρησιμοποιούν το ετηπλέον byte για να επιταχύνουν ορισμένες διαδικασίες όπως για παράδειγμα την αναπαράσταση του δρομέα: Όταν η τιμή αυτού του byte είναι ίση με 0, αναπαρίσταται το εικονοστοιχείο. όταν είναι 255 το εικονοστοιχείο θεωρείται διάφανο, και οποιαδήποτε άλλη τιμή είναι, ουσιαστικά, μία αναφορά σε κάποια συγκεκριμένη παλέτα χρωμάτων. Έτσι, για παράδειγμα, όταν το ποντίκι περάσει πάνω από ένα εικονοστοιχείο, αυτό το byte παίρνει την τιμή. π.χ.. 43. και αναπαρίσταται σε εκείνο το σημείο το χρώμα παλέτας που αντιστοιχεί στο χρώμα του δρομέα. Όταν το ποντίκι μετακινηθεί, το byte αυτό παίρνει ξανά την τιμή 0 και έτσι αναπαρίσταται ξανά το αρχικό χρώμα του συγκεκριμένου εικονοστοιχείου. 1.4.5 Αναπαράσταση στα 48 bits Εδώ έχουμε 16 bits ανά βασικό χρώμα. Αυτά το καθιστούν ικανό να α\ τιπροσωπεύσει 65536 αποχρώσεις κάθε χρώματος αντί για 256. Αυτό χρησιμοποιείται κατά κύριο λόγο στην επαγγελματική επεξεργασία εικόνας, για τη διατήρηση μεγαλύτερης ακρίβειας, όταν στην εικόνα χρησιμοποιηθούν μια σειρά φίλτρων. Με μόνο 8 bits ανά χρώμα, καθώς αυτό στρογγυλοποιείται με κάθε πέρασμα φίλτρου, τα σφάλματα έχουν σωρευτικό αποτέλεσμα, διαστρεβλώνοντας τις πραγματικές χρωματικές αποχρώσεις της εικόνας.

1 :(0(ΐΡίΐογή επεζεργασίας βίντεο αε τη γρήση φίλτρο)ν

Περιγραφή φίλτρων Υπάρχουν τρεις βασικές κατηγορίες φίλτρων, στην πρώτη κατηγορία ανήκουν αυτά που αφαιρούν τον θόρυβο από τις εικόνες, στην δεύτερη αυτά που προσθέτουν θόρυβο και στην τρίτη κατηγορία τα υπόλοιπα που είναι γενικής χρήσης. 2.1 Φίλτρα αφαίρεσης θορύβου. Με τη σειρά της αυτή η κατηγορία χωρίζεται σε δύο ακόμη κατηγορίες φίλτρων, τα γραμμικά και τα μη γραμμικά. 2.1.1 Γραμμικά Φίλτρα 2.1.1.1 Κινούμενος Μέσος (average median) To φίλτρο κινούμενου μέσου η αλλιώς μέσου όρου χρησιμοποιείται για την απομάκρυνση κρουστικού θορύβου από μια εικόνα και ανήκει στα γραμμικά φίλτρα. Αναφέρεται συχνά και ως φίλτρο θαμπώματος ('Blur'). Η υλοποίηση του είναι σχετικά απλή, προσθέτουμε όλα τα γειτονικά στοιχειά του στοιχείου που μας ενδιαφέρει και τα διαιρούμε με το πλήθος τους, δηλαδή 9, καθώς έχουμε ετηλέξει για λόγους απλότητας, συγκερασμό 3x3 (3x3 convolution). Το αποτέλεσμα καταχωρείται στη θέση W5. W1 W2 W3 Wout = (W1 + W2 + W3 + W4 + W5 + W6 + W7 + W8 + W9) / 9 Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froiaverag.cpp. ((READSRC(-1,0)SOxffOOff) + (READSRC(-1,1)sOxffOOff) + (READSRC(-1,2)SOxffOOff) + (READSRC( 0,0)sOxffOOff) + (READSRC( 0,2)SOxffOOff) + (READSRCi 1,0)SOxffOOff) + (READSRC( 1,1)SOxffOOff) + (READSRCi 1,2)SOxffOOff)); ((READSRC(-1,0)SOxOOffOO) + (READSRC(-I,l)s0x00ff00) + (READSRC(-1,2)SOxOOffOO) + (READSRCi 0,0)SOxOOffOO) + (READSRCi 0,2)SOxOOffOO) + (READSRCi 1,0)SOxOOffOO) + (READSRCi 1,1)SOxOOffOO) + (READSRCi 1,2)SOxOOffOO)) rb = rb*28 H i OxffOOffOO) i OxOOffOOOO)) ;

ΚίοαοαοΎή F.πε εdύασtαc βίντεο ue τη γρήοη (ρίλφ(ι)ν 2.1.2 Μη γραμμικά φίλτρα Μια χρήσιμη σειρά από φίλτρα είναι τα μη γραμμικά. Για κάθε εικονοστοιχείο της εικόνας εισόδου επιλέγεται μια γειτονιά από ΝχΜ (έχουμε ετηλεξει 3x3) εικονοστοιχεία γύρω του. Οι τιμές των εικονοστοιχείων της ετηλεγμένης γειτονίας μαζί με τα κεντρικό διατάσσονται κατά αύξουσα σειρά. Στη συνέχεια ανάλογα με το φίλτρο που υλοποιείται επιλέγεται μια από τις τιμές αυτές. Η ετηλεγμένη τιμή αποτελεί τη νέα τιμή του εικονοστοιχείου. Εδώ θα παρουσιαστούν τα τρία βασικότερα φίλτρα της κατηγορίας. Η μοναδική διαφορά ανάμεσα τους είναι ως προς το κριτήριο επιλογής της νέας τιμής του εικονοστοιχείου. Ελάχιστου (Μin). Το εικονοστοιχείο που επιλέγεται είναι αυτό με τη μικρότερη τιμή. Μεγίστου (Max). Το εικονοστοιχείο που επιλέγεται είναι αυτό με τη μεγαλύτερη τιμή. Ενδιάμεσου (Median). Το εικονοστοιχείο που επιλέγεται αυτό που βρίσκεται στη μέση αυτής της διάταξης. Το φίλτρο ελάχιστου γενικά σκοτεινιάζει μια εικόνα αφού ετηλέγει τις λιγότερο φωτεινές τιμές της. Αντίθετα το φίλτρο μεγίστου γενικά φωτίζει μια εικόνα. Αυτό συμβαίνει διότι επιλέγει τα πιο φωτεινά σημεία της εικόνας. Ένα παράδειγμα πρακτικής χρήσης του φίλτρου ελάχιστου είναι η διόρθωση της φωτεινότητας υποβάθρου μιας εικόνας όταν αυτή δεν είναι ομοιόμορφη. Η διόρθωση γίνεται περνώντας την εικόνα από ένα φίλτρο ελαχίστου με αρκετά μεγάλο παράθυρο π.χ. 32x32 και στη συνέχεια αφαιρώντας το αποτέλεσμα από την αρχική εικόνα: Το φίλτρο ενδιάμεσου είναι το πιο ευρέως χρησιμοποιούμενο. Βασική του χρήση είναι η αποκατάσταση μιας εικόνας που έχει αλλοιωθεί από κρουστικό θόρυβο. Η μέθοδος είναι παρόμοια με αυτή του μέσου όρου. Τα αποτελέσματα όμως είναι πολύ καλύτερα διότι δεν υπάρχει το θάμπωμα που υπεισέρχεται στην εικόνα από το φίλτρο μέσου όρου. 2.1.2.1 Φίλτρο ελαχίστου (min filter) Η συνάρτηση READSRC χρησιμοποιώντας τα σημεία του πίνακα 1 εξάγει τις τιμές, και με συνεχής συγκρίσεις καταλήγει στα μικρότερα R, G, Β Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froimin.cpp. rmax=(readsrc( 1,2)SOxffOOOO); > (READSRC(-1,0)SOxffOOOO)){rmax=(READSRC (- 1.0) SOxffOOOO) ;) (READSRC(-1,1 )SOxffOOOO))(rmax=(READSRC (- 1.1) SOxffOOOO);} 1.2) SOxffOOOO);} 0,0)SOxffOOOO);} > (READSRC(-l,2)s0xff0000))(rmax-(READSRC(- > (READSRC( 0,0)SOxffOOOO))(rmax=(READSRC(

Ecpgpuovii ετιε εονασίας βίντεο αε τη Ύοτίστι (οίλτοων ( R E A D S R C f 0, 1 ) S O x f f O O O O ) ) { n 0, l ) 4 0 x f f 0 0 0 0 ) ; ) ( R E A D S R C i 0, 2 ) S O x f f O O O O ) ) ( Π 0, 2 ) & 0 x f f 0 0 0 0 ) ; ) i f ( R E A D S R C i 1, 0 ) S O x f f O O O O ) ) { n 1. 0 ) s 0 x f f 0 0 0 0 ) ; ) i f ( R E A D S R C i 1, 1 ) S O x f f O O O O ) ) { n 1. 1 ) s 0 x f f 0 0 0 0 ) ; ) x = { R E A D S R C ( x = ( R E A D S R C i x = ( R E A D S R C ( x = ( R E A D S R C ( S O x O O f f O O ) 1 ( gmax= ( R E A D S R C ( - 1.0) s0x00ff00);) ( R E A D S R C ( - ; S O x O O f f O O ) 1 { g m a x = ( R E A D S R C ( - 1.1) SOxOOffOO);} ( R E A D S R C ( - 1, 2 ) S O x O O f f O O ) 1 (ginax=(readsrc(- 1.2 ) soxooffoo);), f ( g i t i a x > ( R E A D S R C * S O x O O f f O O ) 1 { g i n a x = ( R E A D S R C ( 0,0 ) SOxOOffOO);} ( R E A D S R C S O x O O f f O O ) 1 { g m a x = ( R E A D S R C i 0,l) s 0 x 0 0 f f0 0 ) ;) ( R E A D S R C i 0, 2 ) S O x O O f f O O ) 1 { g m a x = ( R E A D S R C ( 0,2 ) SOxOOffOO);} ( R E A D S R C S O x O O f f O O ) ) { g m a x = ( R E A D S R C ( 1.0) SOxOOffOO);) i f ( g m a x : ( R E A D S R C i 1, 1 ) S O x O O f f O O ) 1 i g m a x = ( R E A D S R C i 1.1) SOxOOffOO);) 1 (bmax=( READSRC (- 1.0) s0x0000ff); ( R E A D S R C ( - 1, 1 ) S O x O O O O f f ) ^bmax=(readsrc(- 1.1) SOxOOOOff); ( R E A D S R C ( - 1, 2 ) S O x O O O O f f ) ibmax=(readsrc(- 1.2) soxooooff); i f ( b m a x ( R E A D S R C i 0, 0 ) S O x O O O O f f ) I{bmax=(READSRCi 0,0)s0x0000ff); ( R E A D S R C i 0, 1 ) S O x O O O O f f ) I ibmax= (READSRCi 0,1)SOxOOOOff); i f I ( R E A D S R C i 0, 2 ) S O x O O O O f f ) Iibmax=(READSRCi 0,2)SOxOOOOff);) i f I ( R E A D S R C i 1, 0 ) S O x O O O O f f ) I{bmax=(READSRCi 1.0) SOxOOOOff);) i f I ( R E A D S R C i 1, 1 ) S O x O O O O f f ) I(bmax=(READSRCi 1.1) SOxOOOOff);) (braax S OxOOOOOOff)) ; = ( ( ( r m a x S O x O O f f O O O O ) I ( g m a x s O x O O O O f f O O ) ) 2.1.2.2 Φίλτρο Μεγίστου (max filter) H συνάρτηση READSRC χρησιμοποιώντας τα σημεία του πίνακα 1 εξάγει τις τιμές, και με συνεχής συγκρίσεις καταλήγει στα μεγαλύτερα R, G, Β. Η μόνη διάφορα στον κώδικα από αυτόν του φίλτρου ελάχιστου είναι αυτή του τελεστή σύγκρισης <'. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froimaxx.cpp. 1, 0 ) S O x f f O O O O ) ; ) u n s i g n e d l o n g r m a x, g m a x, b m a x ; - ( R E A D S R C i 1, 2 ) S O x f f O O O O ) ; : ( R E A D S R C ( - 1, 0 ) S O x f f O O O O ) )

F,pnp.i»vT. επε;^«^pγ«nίαc βίντεο με τη γρήση φίρ.φων I,l)s0xff0000);) I,2)s0xff0000);) 0,0)s0xff0000);) 0,l)s0xff0000);) 0,2)s0xff0000);) f (rmax < (READSRC (- -I,l)s0xff0000)) (rmax-(readsrc(- f (rmax < (READSRC (- -l,2)s0xff0000))(rmax-(readsrc(- f (rmax < (READSRC( 0,0)s0xff0000)) (rmax-(readsrc( f (rmax < (READSRC( 0,l)s0xff0000))(rmax-(READSRC( f (rmax < (READSRC( 0,2)s0xff0000)) (rmax-(readsrc( f (rmax < (READSRC( I,0)s0xff0000)) (rmax-(readsrc( I,0)s0xff0000);) f (rmax < (READSRC( l,l)s0xff0000))(rmax-(readsrc( gmax-(readsrc{ 1,2)SOxOOffOO); if (gmax < (READSRC(-1,0)sOxOOffOO); (gmax-(readsrc(- 1.0) i0x00ff00);) if (gmax < (READSRC(-1,1)iOxOOffOO) I(gmax-(READSRC(- 1.1) i0x00ff00);) if (gmax < (READSRC(-1,2)iOxOOffOO) 1.2) &0x00ff00);) if (gmax < (READSRC( 0,0)&0x00ffOO) 0,0)s0x00ff00);) if (gmax < (READSRC( 0,1)sOxOOffOO) 0,l)s0x00ff00);> if (gmax < (READSRC( 0,2)&0x00ff00) 0,2)s0x00ff00);) if (gmax < (READSRC( 1,0)SOxOOff00) 1.0) s0x00ff00);) if (gmax < (READSRC( 1,1)SOxOOffOO) 1.1) s0x00ff00);) I(gmax-(READSRC(- I(gmax-(READSRC( I(gmax-(READSRC( )(gmax-(readsrc( )(gmax-(readsrc( )(gmax-(readsrc( 1.0) s0x0000ff); if (bmax < (READSRC(-1,1)SOxOOOOff))(bmax-(READSRC(- 1.1) S0x0000ff); if (bmax < (READSRC(-1,2)SOxOOOOff))(bmax-(READSRC(- 1.2) soxooooff); if (bmax < (READSRC( 0,0)SOxOOOOff))(bmax-(READSRC( 0,0)s0x0000ff) ; if (bmax < (READSRC( 0,1)SOxOOOOff))(bmax-(READSRC( O.DsOxOOOOff); if (bmax < (READSRC( 0,2)SOxOOOOff))(bmax-(READSRC( 0,2)SOxOOOOff); if (bmax < (READSRC( 1,0)SOxOOOOff))(bmax-(READSRC( 1.0) SOxOOOOff); if (bmax < (READSRC( 1,1)SOxOOOOff))(bmax-(READSRC( 1.1) SOxOOOOff); (( (1 i OxOOffOOOO) I (gmax S OxOOOOffOO)) 2.1.2.3 Φίλτρο ενδιάμεσου (median filter) H διαδικασία σε αυτό το φίλτρο μοιάζει λίγο με τα προηγούμενα δύο άλλα είναι λίγο πιο πολύπλοκο. Αρχικά αποθηκεύουμε τις 9 τιμές των R, G, Β στους τρείς πίvακεςrtable[9],gtable[9],btable[9] αντίστοιχα, με τη βοήθεια των μασκών αποθηκεύουμε μονο το κομμάτι της τιμής που μας ενδιαφέρει. Στη συνέχεια θα ταξινομίσουμε τους τρεις πίνακες ξεχωριστά με τις δυό

EdHioucmi επε^εούασίαο βίντεο ιιε τη γοήση φίλτροον for{} καί τη βοήθεια της συνάρτησης swap(). Η τιμή που μας ενδιαφέρει τώρα πλέον βρίσκεται στον πίνακα στη θέση 4 xtable[4], καθώς είναι η πέμπτη τιμή του ταξινομημένου πίνακα, δηλαδη ο ενδιάμεσος που ψάχνουμε. Τα αποτέλεσματα με μια απλή OR συγχωνεύονται και εξάγονται. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froimediann.cpp. i swap(unsigned long svaluel,unsigned long svalue2) unsigned long teirp; temp=valuel; value2=temp; nnean,gmean,bmean, rtable[9], gtable[9],btable[9]; rtable[0]= (READSRC(-1,0)sOxffOOOO); rtableί1]= (READSRC(-1,1)SOxffOOOO); rtable[2)= (READSRC(-1,2)iOxffOOOO); rtable[3)= (READSRC( 0,0)&0xff0000); rtable[4)= (READSRC{ 0,1)SOxffOOOO); rtable[5]= (READSRC( 0,2)SOxffOOOO); rtable[6]= (READSRC( 1,0)SOxffOOOO); rtable[7]= (READSRC( 1,1)SOxffOOOO); rtable[8]= (READSRC( 1,2)SOxffOOOO); for ( (rtableix]>rtable[y]){swap(rtable[x],rtable[y]);) gtable[0] gtable[1] gtable[2] gtable[3] gtable[4] gtable15] gtable[6] gtable[7] (READSRC(-1,0)SOxOOffOO); (READSRC(-1,1)SOxOOffOO); (READSRC(-1,2)SOxOOffOO); (READSRC( 0,0)SOxOOffOO);. (READSRC( 0,1)SOxOOffOO); (READSRC( 0,2)SOxOOffOO); (READSRC( 1,0)SOxOOffOO); (READSRC( 1,1)SOxOOffOO); gtable[8]= (READSRC] l,2)i for (ir x<9; : y=0; y<9; ++y){ (gtable[x]>gtable[y])(swap(gtable(x],gtable[y]), btableio btableu btable[2 btable[3 btable(4 btable[5 = (READSRC(-1,0)SOxOOOOff) ; = (READSRC(-1,1)sOxOOOOff) ; = (READSRC(-1,2)SOxOOOOff); = (READSRC] 0,0)SOxOOOOff); = (READSRC] 0,1)SOxOOOOff); = (READSRC] 0,2)SOxOOOOff);

L F.pnnuovfi e«f. EOvacnac βίντεο αε τη γρήση φί>.τρ(.)\ btable[6)- (READSRC( 1,0)sOxOOOOff); btable[7)= (READSRCf 1,1)iOxOOOOff); btable[8]- (READSRC( 1,2)tOxOOOOf ); (btable[x]>btable[yl)(swap(btable[x],btablely))i f- (((rtable[4)) I (gtable[4))l 2.1.2.4 Εξισορρόπηση ιστογράμματος Στην εικόνα 1 βλέπουμε μια εικόνα με χαμηλή αντίθεση, με αποτέλεσμα να υπάρχουν πολλά σκοτεινά σημεία. Η λύση στα video με χαμηλή αντίθεση είναι το φίλτρο της εξισορρόπησης ιστογράμματος. Η εξισορρόπηση έχει σαν αποτέλεσμα το ιστόγραμμα να απλώνεται ομοιόμορφα σε όλο το μήκος του και να μην δημιουργεί απότομα υψώματα. Η εξάπλωση του ιστογράμματος κάνει τα σκοτεινά στοιχεία (pixels) πιο σκοτεινά και τα ανοιχτά χρώματα να φαίνονται πιο ανοιχτά. Εικόνα 1 Χωρίς εξισορρόπηση ιστογ[κ

Εικόνα 2 Με εξισορρόπηση ιστογράμματος Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froihisto.cpp. // Compute input histogram for (y=0;y<h;y++) { src = (Pixel32 *)((char *)fa->src.dat >src.modulo)*y); for (x=0; x<w; x++) ( mfd- >inhistogram[ (299* ((*src»16) s0xff)+587* I 'src»8) soxff)+: (*srcioxff))/10 // Compute transfer function from histogram double Exponent = double(50)/255.0; double t[256]; // Transfer function LOT double tmp=0.0; double weighted; for (i=0; i<256; i++) { if (Exponent>=0) weighted = pow(mfd->inhistogram[i],exponent); else weighted - 1.0/pow(mfd->inHistogram(i],-Exponent); t[i) = tmp+weighted/2; tmp += weighted; // Normalize transfer function double offset=t[0); tmp-=t [255] -offset; for (i=0; i<256; i++) ( t[i] = (t(i)-offset)*255/tmp; // Equalize image int Intensity; unsigned char red, green, blue; for(y=0; y<h; y++) ( src = (Pixel32 *)((char *)fa->src.data f >src.modulo)*y);?of(pixel32)*w+fa- )0]+- Lzeof(Pixel32)*w+fa-

F.(i>«nuoYTi κ7τε εονασία Βίντεο uc τη γρήση φίν.τροίν dst = (Pixel32 *) ((char *)fa->dst.data (sizeof(pixel32)*w+facast<unsigned char>((*src>>16)soxff); >dst.modulo)*y); for(x=0; x<w; x++) { // Get original color values cast<unsigned char>({*src>>8) ioxff); 'cast<unsigned char>(*srcsoxff); // Get maximum color vali Intensity = (red>green) ' ((red>blue)?red:blue) ((green>blue)?green:blue); // Equalize all three colors with same scale to avoid color shifting double scale =- double (t Ilntensity])/double (Intensity) ; red = ( (unsigned int) (red * scale ); green = ( (unsigned int) (green * scale ); blue = ( (unsigned int) (blue * scale ); *dst++ = (red«16) + (green«8) + blue; // Compute output histogram 2.2 Φίλτρα προσθήκης θορΐιβου 2.2.1 Προσθήκη θορόβοχ) Ο θόρυβος στις εικόνες είναι συνήθως προσθετικός η πολλαπλάσιος στους αριθμούς R, G, Β των στοιχείων. Τα φίλτρα που σχεδιάσαμε λειτουργούν μόνο προσθετικά, και τα συναντάμε συχνά με το όνομα λευκός θόρυβος. Τα φίλτρα αυτά είναι χωροταξικά ασυσχέτιστα, κάή που σημαίνει πως θόρυβος για κάθε στοιχείο είναι ανεξάρτητος και πανομοιότυπα κατανεμημένος. Για παράδειγμα αν έχουμε δυο ίδια στοιχεία χ1 = χ2 το ένα δίπλα στα άλλο, με την προσθήκη του θορύβου θα έχουμε δύο τελείως διαφορετικά, χΐ+ηΐ και χ2+η2. Τρία κοινά μοντέλα θορύβου είναι τα εξής: Ομοιόμορφος(υηίίοιτη) θόρυβος ΛαπλασιανόςίΤαρΙαοίαη) θόρυβος Gaussian θόρυβος και ο κβαντισμός που λειτουργεί πολύ διαφορετικά από τα παραπάνω φίλτρα. Παρακάτω βλέπουμε το σχεδιάγραμμα των τριών μοντέλων

ΕφαοαοΎΐί επε εpγ^σίαc βίντεο αε τη γοήση (οίλτρο3ν 2.2.1.1 Ομοιόμορφος θόρυβος (Uniform noise). Ο ομοιόμορφος θόρυβος πολύ σπάνια αντιμετωπίζεται στην πραγματικότητα, αλλά παρέχει ένα πολύ καλό μοντέλο για σύγκριση με άλλα φίλτρα. Θα μπορούσαμε να τα χαρακτηρίσουμε και γραμμικό. Η εξίσωση που μας δίνει τον ομοιόμορφο α αυτή ρ (η) = για η <= σ V3 αλλιώς 0. Όπου σ ένας αριθμός που μας δείχνει τη δύναμη του φίλτρου Ο θόρυβος που προσθέτει το φίλτρο είναι κατά προσέγγιση πανομοιότυπος με τον πραγματικό. Έχουμε φτιάξει δύο βοηθητικές συναρτήσεις, την dblrand() που επιστρέφει ένα τυχαίο αριθμό μικρότερο του 1, και την unifonn() που την χρησιμοποιεί και μας ετηστρέφει το θόρυβο. Στη συνέχεια κάνουμε και πάλι χρήση της READSRC(x,y) για να διαβάσουμε το στοιχείο στη θέση x,y. Έχουμε προσθέσει και δύο νέες συναρτήσεις που μας δίνουν τη δυνατότητα να επεξεργαζόμαστε ξεχωριστά τα πεδία R, G, Β κάθε στοιχείου. Με τη συνάρτηση pixunpack (χ, r, g, b) διασπάμε ένα στοιχείο X της μορφής 0x000000 στα R, G, Β, κάτι που μας διευκολύνει πολύ για περετάιρω επεξεργασίες. Στη συνέχεια με τη βοήθεια της pixpack(r,g,b) ξάνα συμπιέζουμε το επεξεργασμένο στοιχείο για τηο εύκολη αποθήκευσή και μεταχείριση. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froiuniform.cpp. 1 (r«16) + (g«8)

F,p»p.nvfi επε^p-pγ«σίαc βίντεο με τη γρήση φίλτρων r i<2000; ++i) { = (int)(30.5f + 20.0f*gaussian() ++ d istlx); signed long rtable[9],gtable[9],btablel9]; uint32 sourcepixel, dstpixel; int rw-0, rnoised-0, gw-0, gnoised-0, bw-0, bnoised-0, sourcepixel READSRC( 0,1); pixunpaclc (sourcepixel, rw, gw,bw) ; noise-dist[rand()%60+l]; rnoised = rw + noise; gnoised = gw + noise; bnoised = bw + noise; dstpixel=pixpac)c (rnoised, gnoised,bnoised) ; if (rand()%ll+l<-5){ *dst ++ - dstpixel; X- (*dst ++ = (READSRCi 0,1));) 2.2.1.2 Ααπλασιανός θόρυβος (laplacian noise) 1 H εξίσωση του θορύβου είναι ο (η) =. e ", όπου σ ένας αριθμός ν2σ που μας δείχνει τη δύναμη του φίλτρου. Όπως και στον ομοιόμορφο θόρυβο έτσι και εδώ κάνουμε χρήση των συναρτήσεων dblrand(), uniform(), READSRC(x,y), pixunpack() και pixpack(). Ο κώδικας μοιάζει πολύ με αυτό του προηγούμενο φίλτρου γιατί όπως προαναφέραμε λειτουργεί κατά προσέγγιση και το μόνο που αλλάζει είναι η δύναμη του θορύβου.

Ε(ραοαοΎτί επε^ερνασίας βίντεο αε τη ypficm φίλτρων Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> froilaplacian.cpp. L=0; i<2000; ++i) { it X = (int) (30.5 f + 20.0f*gaussie ++dist[x]; unsigned long rtable[9], gtable[9],btable [9]; uint32 sourcepixel, dstpixel; int rw=0, rnoised-0, gw=0, gnoised=0, bw=0, bnoised=c sourcepixel=readsrc( 0,1); pixunpack(sourcepixel, rw,gw,bw); noise=dist[rand 0 %60+l]; rnoised = rw + noise; gnoised = gw + noise; bnolsed = bw + noise; dstpixel=pixpack(rnoised, gnoised,bnoised) ; if (rando %11+1<=3.5) { *dst ++ = dstpixel; (*dst ++ = (READSRC( 0,1));) 2.2.1.3 Gaussian θόρυβος O Gaussian θόρυβος είναι ίσως το χειρότερο είδος θορύβου, καθώς για πολλά μη γραμμικά φίλτρα είναι δύσκολος ο υπολογισμός της αφαίρεσής του χωρίς μεγάλη παραμόρφωση της εικόνας. Η εξίσωση του θορύβου είναι γ?,, (η) = ^ e Λΐπσ~ Ο κώδικας είναι ίδιος με αυτών των δύο προηγούμενων φίλτρων, με τη μόνη διαφορά να βρίσκεται και πάλι στη ισχύ του θορύβου.

RmiinuoYTi επτιεούασίας βίντεο uc τη γρηση φίλτρων Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> sourcc-> froigaussian.cpp. 2.2.1.4 Κβαντισμός (quantize) H κβάντιση αποσκοπεί στην αναπαράσταση των δειγμάτων που έχουν προκόψει από την δειγματοληψία, που μπορούν να έχουν οποιαδήποτε τιμή, με ένα πεπερασμένο πλήθος τιμών. Ο πιο συνήθης κβαντιστής είναι ο ομοιόμορφος κβαντιστής. Δηλαδή χωρίζουμε το πεδίο τιμών των εικονοστοιχείων σε έναν καθορισμένο αριθμό από ισοαπέχουσες στάθμες Στη συνέχεια κάθε εικονοστοιχείο ανάλογα με τη τιμή του κατατάσσεται και στην αντίστοιχη στάθμη. Αυτός ο κβαντιστής είναι ο πιο απλός. Έχει τα ίδια χαρακτηριστικά για κάθε εικόνα και δεν λαμβάνει υπ όψιν του καθόλου το σφάλμα κβάντισης που υπεισέρχεται. Γενικά ανάλογα με τις απαιτήσεις της εφαρμογή μπορεί να επιλεγεί κάποιος άλλος κβαντιστής με διαφορετικά χαρακτηριστικά όπως για παράδειγμα την ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος κβάντισης που υπεισέρχεται στην εικόνα (Κβαντιστής Loyd-Max). Το πλήθος των επιπέδων κβάντισης ονομάζεται και βάθος χρώματος μιας εικόνας. Αντιπροσωπεύει τον αριθμό των επιπέδων του γκρι αν είναι ασπρόμαυρη ή τον αριθμό των χρωμάτων της αν είναι έγχρωμη. Μετριέται με τον αριθμό των bits που χρησιμοποιούνται για την αναπαράσταση των χρωματικών επιπέδων. Για παράδειγμα συναντάμε εικόνες με βάθος χρώματος 7-bit ή 8-bit όπου αντίστοιχα έχουμε 128 και 256 χρωματικές στάθμες. Μια μικρή μείωση στο βάθος χρώματος της εικόνας στα 6-bit δεν γίνεται εύκολα αντιληπτή. Αυτό βέβαια είναι υποκειμενικό και εξαρτάται άμεσα από την εικόνα. Μικρότερες τιμές όμως προκαλούν παραμόρφωση και οι εικόνες είναι πλέον πολύ χαμηλής ποιότητας και το αποτέλεσμα μη αναστρέψιμο. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> f ROIquantization.cpp. H συνάρτηση READSRC(x,y) μας ετηστρέφει την τιμή του στοιχείου στη θέση [x,y]. Ο κβαντισμός επιτυγχάνεται στη σειρά 109, με την εφαρμογή του AND ανάμεσα στο στοιχείο που διαβάσαμε και της μάσκας OOfOfOfO, με τη μάσκα αυτή επιτυγχάνουμε κβαντισμο της τάξεις των 4bit, δηλαδή μειώνουμε τις χρωματικές στάθμες από 256(2^8) που ήταν αρχικά σε 16(2Μ).

2.3 Φίλτρα γενικής χρήσης 2.3.1 Αποχρωματκ Ο αποχρωι εικόνας της πληρα πληροφορία της φ( ασπρόμαυρες, και χρησιμοποιείται στα αντίστροφο. Πως επι εικόνας σε κλίμακες του γκρί μπορεί αλλά το αποτέλεσμα την τιμή που θα δώσουμε στο βάρος του κάθε χρώματος. Για ρώμα σε αναπαράσταση της κλίμακας του γκρί, πρέπει να πολλαπλι οιχείο R,G,B ενός εικονοστοιχείου ως εξής. R*54 το 0*183 και το Β*19, στην αποτέλεσμα προσθέτουμε το 128, ι φωτεινότητα του σι bit. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> f_roigrayscale_param.cpp.

Εαχιοαογή ετιε^εογασίαο βίντεο ue τη γρήση ψί^αρίρν vd_pixunpack(ρχ, ρχ - 0x010101 * ( 2.3.2 Αρνητικό (negative) Η λειτουργία του φίλτρου είναι πολύ απλή. Κάθε στοιχείο προς ετιεξεργασία μετατρέπεται στο αρνητικό του με τον τελεστή ~ και εξάγεται. Ο κώδικας του φίλτρου βρίσκεται μέσα στο project folder-> VirtualDub-> source-> f ROIinvert.cpp. Line 36 long h, ptrdiff_t pitch) ( H κλήση της συνάρτησης γίνεται με τα παρακάτω ορίσματα VDInvertRect32( fa->dst.w, fa->dst.h, fa->dst.pitch 2.3.3 Οριζόντια - Κάθετη αναστροφή (flip horizontal - flip vertical) Και στις δυο περιπτώσεις αναστροφής ουσιαστικά δεν υπάρχει καμία επεξεργασία των στοιχείων της εικόνας, η λειτουργία των δύο φίλτρων είναι μια απλή αντιμετάθεση στοιχείων. Ο κώδικας και των δυο φίλτρων βρίσκεται μέσα στο project folder-> VirtualDub-> source-> f ROIflipv.cpp. 2.3.3.1 Οριζόντια αναστροφή Ορίζουμε τους δείκτες, src.data για να διαβάσουμε την εικόνα που έχουμε φορτώσει στη μνήμη και dst.data για τη μνήμη της εξαγόμενης εικόνας. Θα πρέπει να αναφέρουμε ότι η σάρωση της εικόνας αρχίζει από κάτω αριστερά και τελειώνει

Εοαοααγτι ε^^εούασίας βίντεο ιιε τη γοτιστι φίλτρων επάνω δεξιά. Επομένως το μόνο που έχουμε να κάνουμε είναι να ορίσουμε την αρχική θέση του δείκτη *dst ως την τελική θέση που *src και να αντιγράψουμε τις θέσεις μνήμης που αναφέρουν. h fa->dst.pitch*(fa-> memcpyidst, src, fa->si src - (Pixel *) ((char * dst = (Pixel *)((char * [ while( h); 2J.3.2 Κάθετη αναστροφή Ο διαδικασία είναι η ίδια με την παραπάνω, με την μόνη διαφορά την διαφορετική αρχική θέση μνήμης *dst και την πορεία των δύο δεικτών. dst[w] = *srct+ lile ( w) ; = (Pixel *)((char - (Pixel *)((char

Ηφαραογτι επε εονασίαο βίντεο με τη γρηση φίλτρων

ΰ'ίΡΙί'.ΎΊ >-^<':~ί:ρύασίας βίντεο αε τη γρήση φίλτρων ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΑΕΣΜΑΤΑ Παρακάτω θα εφαρμόσουμε τα φίλτρα στο frame 410 (time 0:00:16:400) του video που περιλαμβάνεται στο συνοδευτικό CD για να δούμε την αποτελεσματικότητα τους. 3.1. Φίλτρο αποχρωματισμού Στην εικόνα 1έχει εφαρμοστεί το φίλτρο αποχρωματισμού (grayscale). 3.2. Φίλτρο αρνητικού Στην εικόνα 2 έχει εφαρμοστεί το φίλτρο αρνητικό (negate or negative).

Ιίωαραοτή επεδεργασίας βίντεο αε τη γρήση ψίραρων 3.3. Φίλτρο οριζόντιας και κάοιτης αναστροφής Στην εικόνα 3α έχει εφαρμοστεί το φίλτρο οριζόντιας αναστροφής (flip horizontal). Εικόνα 3α Στην εικόνα 3β έχει εφαρμοστεί το φίλτρο κάθετης αναστροφής (flip vertical). Εικόνα 3β 3.4. Φίλτρο εςισορρόπησης ιστογράμματος Στην εικόνα 4 έχει εφαρμοστεί το φίλτρο εξισορρόττησης ιστογράμματος (histogram equalization) 3.5. Προσθήκη Οορί)Ροΐ) Στην εικόνα 5α έχει εφαρμοστεί το φίλτρο προσθήκης θορύβου gaussian.

Εφαρμογή ετιεζεργασίας βίντεο αε τη γρήστι (ρίλτοων Στην εικόνα 5β έχει εφαρμοστεί το φίλτρο προσθήκης θορύβου uniform. Εικόνα 5γ Στην εικόνα 5δ έχει εφαρμοστεί το φίλτρο προσθήκης θορύβου quantize η quantization.

HcpaouoYfi Γ-πε^εονασίας βίντεο με τη γρήση φίλτρολ' 3.6 Φίλτρο ελάχιστου Στην εικόνα 6α, 6β, και 6γ έχει προστεθεί gaussian, uniform, και laplacian θόρυβος αντίστοιχα, στην συνέχεια έχει εφαρμοστεί το φίλτρο αφαίρεσης θορύβου ελάχιστο (min). Εικόνα 6γ

Εφαραογή επεζερνο 1 '/ρήση φίλτρω'' 3.7 Φίλτρο μεσαίου Στην εικόνα 7α, 7β, και 7γ έχουν προστεθεί gaussian, uniform, και laplacian θόρυβος αντίστοιχα, στην συνέχεια έχει εφαρμοστεί το φίλτρο αφαίρεσης θορύβου μεσαίου (mean). Εικόνα 7γ

Κωαοαογτί επεξεργασίας βίντεο αε τη γρήση φί>αρ(ΐ)ν 3.8 Φίλτ()ο κινοϋμίλ'ου μέσου Στην εικόνα 8α, 8β, και 8γ έχουν προστεθεί gaussian, uniform, και laplacian θόρυβος αντίστοιχα, στην συνέχεια έχει εφαρμοστεί το φίλτρο αφαίρεσης θορύβου κινούμενο μεσαίου (average median). Εικόνα 8γ

Εφαρμογή επεζεργασίας βίντεο αε ττι γοτίση ωίλτοων 3.9 Φίλτρο μεγίστου Στην εικόνα 9α, 9β, και 9γ έχουν προστεθεί gaussian, uniform, και laplacian θόρυβος αντίστοιχα, στην συνέχεια έχει εφαρμοστεί το φίλτρο αφαίρεσης θορύβου IX). Εικόνα 9γ

. 34 - Εωαοαοτή επεξεργασίας βίντεο με τη 7ρηση φίλτ]

1ι.-)αραογή επεζεργασίαα βίντεο uc τη γρήση φί/.τρων Η εφαρμογή 4. Η εφαρμογή Σε αυτό το κεφάλαιο θα εξηγήσουμε όλες τις λειτουργίες του προγράμματος. Θα ξεκινήσουμε με το κύριο παράθυρο της εφαρμογής, από το οποίο εκτελούνται όλες οι εντολές. Αφού τρέξουμε το αρχείο με όνομα virtualdub.exe, θα εμφανιστεί το κεντρικό παράθυρο του προγράμματος. Για να ετηλέξουμε το video που θέλουμε να ετιεξεργαστούμε πατάμε στο μενού File > Open video file Θα μας εμφανίσει το video σε δύο διαφορετικά frame, το αριστερό είναι τι εισόδου και το δεξί το video εξόδου. 1) μας εμφανίζει το video εισόδου 2) μας εμφανίζει το video εξόδου 3) η μπάρα μας δείχνει σε ποιο frame βρίσκεται το video 4) κουμπιά για τον έλεγχο αναπαραγωγής του video 5) File> Open video file Preview input Preview filtered Save as AVI Quit Position control Status bar Curve editor Input video pane Output video pane Filters Audio > No audio ανοίγει το παράθυρο ετπλογής video αναπαραγωγή μόνο του video εισόδου αναπαραγωγή μόνο του video εξόδου αποθηκεύει το επεξεργασμένο video κλείνει την εφαρμογή απόκρυψη/εμφάνιση εργαλείων ελέγχου απόκρυψη/εμφάνιση μπάρας κατάστασης απόκρυψη/εμφάνιση εφαρμογής φίλτρου απόκρυψη/εμφάνιση video εισόδου απόκρυψη/εμφάνιση video εξόδου εμφάνιση παραθύρου των φίλτρων ενεργοποίηση/απενεργοποίηση ήχου

Ι \ >ηριιοντι επερπηνασίας βίντγ.η ιγ. τη γοήστι φίλτρων Για να προσθέσουμε ένα φίλτρο πατάμε Video > Filters, θα μας εμφανίσει αυτό το παράθυρο με τα εξής, 1) χώρος εμφάνισης των επιλεγμένων φίλτρων 2) προσθήκη η αφαίρεση φίλτρου 3) αλλαγή προτεραιότητας στη σειρά των φίλτρων 4) ρυθμίζει ης παραμέτρους του φίλτρου 5) ενεργοποίηση της δυνατότητας εφαρμογής του φίλτρου σε συγκεκριμένα frame Πατώντας το κουμπί Add... θα μας εμφανιστεί το παρακάτω παράθυρο, όπου έχουμε την δυνατότητα να επιλέξουμε ανάμεσα σε 13 διαθέσιμα φίλτρα. Διαλέγουμε το φίλτρο και πατάμε ΟΚ. 1) λίστα με όλα τα διαθέσιμα φίλτρα, στα δεξιά διακρίνουμε και το όνομα αυτού που έχει γράψει το φίλτρο 2) μια σύντομη περιγραφή της λειτουργίας του φίλτρου

Εφαραογή επεζεργασχαο βίντεο ιιε ττι γοήση οατοων Σε αυτό το παράθυρο επιλέγουμε σε ποια περιοχή της εικόνας θέλουμε να εφαρμοστεί το ετπλεγμένο φίλτρο. Η προσθήκη των ορίων που θέλουμε να ετπλέξουμε για την εφαρμογή του φίλτρου μπορεί να γίνει μέσω των κελιών Χ1,Χ2,Υ1,Υ2 ή με το ποντίκι, καθώς τα άκρα της εικόνας είναι ενεργά αυτό σημαίνει ότι μπορούμε να κάνουμε αριστερό κλίκ σε κάποιο από τα τέσσερα σημεία της εικόνας και σέρνοντας το ποντίκι να ζωγραφίσουμε την περιοχή που θέλουμε. Αφού τελειώσουμε την επιλογή της περιοχής πατάμε ΟΚ. 1) εμφάνιση του video για να μας διευκολύνει στην επιλογή της περιοχής 2) XI απευθύνεται στο επάνω μέρος της εικόνας Χ2 απευθύνεται στο δεξί μέρος της εικόνας Υ1 απευθύνεται στο αριστερό μέρος της εικόνας Υ2 απευθύνεται στο κάτω μέρος της εικόνας 3) μπάρα ετηλογής frame 4) κουμπιά ελέγχου του video 5) χρόνος και frame του video

Εωαοαογτί RTtrlEOYamac βίντεο ίΐε τη γοπση φίλτρων ^ μ, ;^l ^ e&!f. 410(0:*:164001 Μας εμφανίζει πάλι το παράθυρο με το φίλτρο που έχουμε επιλέξει. Μπορούμε αν θέλουμε να προσθέσουμε και κάποιο ακόμη φίλτρο η να σβήσουμε κάποιο άλλο. Θα παρατηρήσουμε ότι τώρα είναι ενεργοποιημένα τα κουμπιά Configure και Blend. Το κουμπί configure μας δίνει τη δυνατότητα να επιλέξουμε μια νέα περιοχή εφαρμογής του φίλτρου στο video. Το κουμπί Blend μας δίνει τη δυνατότητα να μπορούμε να επιλέξουμε αργότερα σε ποια frame θα εφαρμοστεί το φίλτρο, το πώς, θα το δούμε παρακάτω. Όταν είναι ενεργοποιημένο το Blend, δίπλα στο όνομα του φίλτρου εμφανίζεται ένα [Β].

EcoapuoTMi επεςκργασία; βίντί:ο m: τη γοήση οί>.τοων Πατάμε ΟΚ και μας ξαναεμφανίζεχ το κεντρικό παράθυρο της εφαρμογής.

Ιΐωαρυογή επεξεργασίας βίντεο ue τη γρήση φϋαρϋ)ν Για να μπορέσουμε να εφαρμόσουμε το φίλτρο μόνο σε κάποιο συγκεκριμένο αριθμό frame θα πρέπει καταρχήν να έχει ενεργοποιηθεί η δυνατότητα Blend που αναφέραμε προηγουμένως. Στη συνέχεια πατάμε View > Curve editor, επάνω από την μπάρα επιλογής frame θα μας εμφανίσει μια γραμμή με όλα τα διαθέσιμα frame του video. Κρατώντας πατημένο το πλήκτρο shift + δεξί κλίκ ετηλέγουμε από ποιο frame θέλουμε να αρχίζει η εφαρμογή του φίλτρου και που να σταματάει, πρέπει να ετπλέξουμε με τη σειρά που φαίνεται 4 σημεία και να σχηματίσουμε έναν κύβο όπως αυτόν της εικόνας παρακάτω Έχουμε επιλέξει να αρχίζει από το frame 172 και να τελειώνει στο frame 187, όπως βλέπουμε το φίλτρο ακόμη δεν έχει εφαρμοστεί καθώς στο σημείο που βρίσκεται εκείνη τη στιγμή η αναπαραγωγή του video είναι έξω από το επιλεγμένο. Μόλις εισέρθει στο ετηλεγμένο πεδίο, το φίλτρο εφαρμόζεται αυτομάτως.

HWi

1 (ραοϋοντι επε εονασίαο βίντεο με τη ϊρηση φίλτρων

I ι^αρηογή CTicccpYUoiuc βίντεο _με τη νρήση οι/.τροιν Επίλογος 7. Επίλογος Κατά τη διαδικασία δημιουργίας της παρούσας εργασίας, κατάφερα να εκπληρώσω τους βασικότερους στόχους που είχα εξ αρχής στο μυαλό μου. Η διάρκεια ολοκλήρωσης, αν και μεγαλύτερη απ ότι περίμενα, ήταν μια ευχάριστη και εποικοδομητική τιερίοδος, που με έβαλε σε μια διάθεση αναζήτησης, εξέλιξης και εμβάθυνσης στον τομέα των πολυμέσων. Κατανόησα με έναν πιο ρεαλιστικό τρόπο, τα στάδια από τα οποία πρέπει να περάσει κάποιος και τα μέσα που χρειάζεται για να ολοκληρώσει ένα πρόγραμμα επεξεργασίας video. Οι κύριοι στόχοι της εργασίας, όπως αναφέρω και στην εισαγωγή, ήταν ο προγραμματισμός μιας εφαρμογής μέσω της οποίας θα είναι δυνατή η επεξεργασία ενός video με διάφορα φίλτρα. Μετά από περίπου οκτώ μήνες αφότου ξεκίνησα να ασχολούμαι με την εργασία, μπορώ να πω ότι κατάφερα σε μεγάλο βαθμό να εκτιληρώσω τους παραπάνω στόχους και να συνειδητοποιήσω ακόμα τηο έντονα την ετηθυμία και την ανάγκη μου να ασχοληθώ μελλοντικά με τον πολύπλευρο και εξελισσόμενο τομέα των πολυμέσων. Η τελική «γεύση» που μου άφησε αυτή η χρονοβόρα αλλά συγχρόνως απολαυστική διαδικασία είναι μια ευχάριστη αίσθηση ολοκλήρωσης και εξέλιξης των ιδεών και των δυνατοτήτων μου. Μπορώ να πω με σιγουριά ότι τέτοιου είδους εργασίες δικαιώνουν την επιλογή μου στο να φοιτήσω στη σχολή Βιομηχανικής Πληροφορικής του ΤΕΙ Καβάλας.

1*1 ΗωαοαοΎή Γ πf. εoύασίαc βίντεο με ττι γοήση φίλτροίν

I niipmnm ετιε^εργασίας βίντεο με τη '/ρήο η φΰα ρο^ν Βιβλιογραφία [IJAndreas Koschan & Mongi Abidi. (2008). Digital Image Processing. John Wiley & Sons. Inc. [2] Mike Loukides. (2008). Learning opencv. O Reilly publications. [3] loannis Pitas. (2001). Digital image processing algorithms and application. John Wiley & Sons. Inc. [4] William K.Pratt. (2001). Digital Image processing: PIKS Inside, third edition. John Wiley & Sons. Inc. [5] Dwayne Phillips. (2000). Image processing in C. second edition. R&D Publications. [6] John C. Russ. (2004). The image processing handbook, fifih edition. Taylor & Francis Group [7] Rafael C. Gonzalez & Richard E. Woods. (2004). Digital Image processing, second edition. Prentice Hall [8] A1 Bovik. (2000). Handbook of image and video processing. Academic Press http://w w w. Wikipedia.com Πηγές από το διαδίκτυο http://w w w.wikipedia.gr http://forums.virtualdub.org/ http://w w w.google.com