Σ.Ε.Ι. ΔΤΣΙΚΗ ΜΑΚΕΔΟΝΙΑ ΠΑΡΑΡΣΗΜΑ ΚΑΣΟΡΙΑ



Σχετικά έγγραφα
ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Οργάνωση και Δομή Παρουσιάσεων

Η αξρή ζύλδεζεο Client-Server

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

Constructors and Destructors in C++

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Εισαγωγή στη Φωτογραυία. Χριζηάκης Σαζεΐδης - EFIAP

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Intel Accelerate Your Code

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

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

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

Άσκηση 1 - Μοπυοποίηση Κειμένου

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Παμελλήμιο χολικό Δίκτυο ΠΑΝΔΠΙΣΖΜΙΟ ΚΡΖΣΖ. Το Δίκτυο στην υπηρεσία της Εκπαίδευσης ΚΔΝΣΡΟ ΔΠΙΚΟΙΝΩΝΙΩΝ & ΔΙΚΣΤΩΝ

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games.

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

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.


Παλεπηζηήκην Θεζζαιίαο. Πνιπηερληθή Σρνιή. Τκήκα Μεραληθώλ Η/Υ, Τειεπηθνηλσληώλ & Δηθηύσλ. [ ]

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Διζαγφγή ζηη Φφηογραθία. Χριζηάκης Σαζεΐδης - EFIAP

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Βιομησανικόρ ζσεδιαζμόρ πποϊόνηων από ανακςκλωμένερ ζςζκεςαζίερ

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

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

Εηζαγσγή ζηελ επηζηήκε ησλ ππνινγηζηώλ. Λνγηζκηθό Υπνινγηζηώλ Κεθάιαην 7ν Λεηηνπξγηθά Σπζηήκαηα

Η Αξιολόγηζη ηηρ Πεπίλητηρ Κειμένος Παιδαγυγικό Ινζηιηούηο

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

Ηλεκηπονικά Απσεία και Διεπαθέρ

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

Έθδνζε /11/2014. Νέα ιεηηνπξγηθόηεηα - Βειηηώζεηο

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

Οδηγίες Ασφρματης Πρόσβασης (Wi-Fi) στο Διαδίκτυο

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

UML (Unified Modeling Language )

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Καθαβηάο Αγ. Δεκήηξηνο - Αζήλα Τει Φαμ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING

Σηα παξαδείγκαηα πνπ αθνινπζνύλ ρξεζηκνπνηήζεθαλ ην JQUIZ, ην JCROSS θαη ην JMATCH, πνπ αλαιπηηθά πεξηγξάθνληαη παξαθάηω.

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

1 η Εργαζηηριακή Άζκηζη Ειζαγωγή

ΠΡΩΣΟΚΟΛΛΑ ΓΙΑΥΔΙΡΗΗ ΣΩΝ ΣΔΡΗΓΟΝΙΚΩΝ ΒΛΑΒΩΝ Δ ΔΝΗΛΙΚΔ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γεσηέρα 10 Ηοσνίοσ 2019 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Εξγαζηήξην Πιεξνθνξηθήο

Transcript:

Σ.Ε.Ι. ΔΤΣΙΚΗ ΜΑΚΕΔΟΝΙΑ ΠΑΡΑΡΣΗΜΑ ΚΑΣΟΡΙΑ ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΕΥΝΟΛΟΓΙΑ ΤΠΟΛΟΓΙΣΩΝ ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ Σος Ανηϊνη Καπαγιάννη Α.Ε.Μ. 70 Ανίτνεσσε Κίνεσες από δωντανή πεγή βίντεο με τρήσε τετνολογιών Microsoft DirectShow και Microsoft VB.NET 2008 Επιβλέπων : Δρ. Μιταήλ Σταμποσλτδής Καθηγηηήρ Εθαπμογϊν Καζηοπιά Μάιος 2010

Σ.Ε.Ι. ΔΤΣΙΚΗ ΜΑΚΕΔΟΝΙΑ ΠΑΡΑΡΣΗΜΑ ΚΑΣΟΡΙΑ ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΕΥΝΟΛΟΓΙΑ ΤΠΟΛΟΓΙΣΩΝ ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ Σος Ανηϊνη Καπαγιάννη Ανίτνεσσε Κίνεσες από δωντανή πεγή βίντεο με τρήσε τετνολογιών Microsoft DirectShow και Microsoft VB.NET 2008 Επιβλέπων : Δρ. Μιταήλ Σταμποσλτδής Καθηγηηήρ Εθαπμογϊν Εγκπίθηκε απψ ηην ηπιμελή εξεηαζηική επιηποπή ηην Σπίηη 4 Μαΐος 2010.... ηαμποςληζήρ Μισαήλ Καθηγηηήρ Εθαπμογϊν... ινάηκαρ Ιυάννηρ Αν. Καθηγηηήρ, Πποφζηάμενορ Σμήμαηορ... Μισάλαρ Άγγελορ Επίκοςπορ Καθηγηηήρ Καζηοπιά Μάιος 2010

Copyright 2010 Καπαγιάννηρ Ανηϊνηρ (antokara@kastoras.info) Απαγοπεωεηαι η ανηιγπαθή, αποθήκεςζη και διανομή ηηρ παποωζαρ επγαζίαρ, εξ ολοκλήπος ή ημήμαηορ αςηήρ, για εμποπικψ ζκοπψ. Επιηπέπεηαι η αναηωπυζη, αποθήκεςζη και διανομή για ζκοπψ μη κεπδοζκοπικψ, εκπαιδεςηικήρ ή επεςνηηικήρ θωζηρ, ςπψ ηην πποχπψθεζη να αναθέπεηαι η πηγή πποέλεςζηρ και να διαηηπείηαι ηο παπψν μήνςμα Οι απψτειρ και ηα ζςμπεπάζμαηα πος πεπιέσονηαι ζε αςηψ ηο έγγπαθο εκθπάζοςν αποκλειζηικά ηον ζςγγπαθέα και δεν ανηιπποζυπεωοςν ηιρ επίζημερ θέζειρ ηος Σ.Ε.Ι. Δςηικήρ Μακεδονίαρ

ΠΔΡΙΛΗΦΗ Σελ ζεκεξηλή επνρή νη ηερλνινγηθέο αλάγθεο θαη ε πξόνδνο θαζηζηνύλ ηα πνιπκέζα όιν θαη πην ζεκαληηθά ζηελ θαζεκεξηλόηεηα καο. Κπξίαξρν κέζσ επηθνηλσλίαο πηα είλαη ην βίληεν κέζσ από γλσζηέο ηζηνζειίδεο όπσο youtube, meta cafe, θιπ. Με ηελ επξέσο ρξήζε ησλ ζπζθεπώλ ιήςεο βίληεν, ε απόθηεζε κηαο web camera ή κηαο IP camera έγηλε πην πξνζηηή από πνηέ. Η αμηνπνίεζε ηέηνησλ κέζσλ δε κπνξνύζε θπζηθά λα κελ πεξηιακβάλεη θαη ηελ ρξήζε ηνπο σο κέηξα αζθάιεηαο, παξαθνινύζεζεο αιιά θαη έξεπλαο. Η εξγαζία απηή ζα επηθεληξσζεί ζηελ αμηνπνίεζε κηαο πεγήο δσληαλήο ιήςεο βίληεν, ζπγθεθξηκέλα κίαο web camera γηα ηελ επεμεξγαζία ηνπ ζήκαηνο βίληεν ζε δσληαλό ρξόλν θαη ηελ επηηπρώο αλίρλεπζε θίλεζεο κέζσ απηνύ. Θα γίλεη αλαθνξά ζηε ιεηηνπξγία θαη ρξήζε ηεο ηερλνινγίαο DirectShow ηεο Microsoft πνπ καο επηηξέπεη ηε ιήςε, επεμεξγαζία θαη πξνβνιή βίληεν από δηάθνξεο πεγέο. Παξάιιεια ζα αλαιπζνύλ θαη παξόκνηεο ηερλνινγίεο ιήςεο θαη εμεξγαζίαο εηθόλαο βίληεν. Έπεηηα γίλεηαη παξνπζίαζε ηεο εθαξκνγήο ηεο εξγαζίαο όπνπ εθαξκόζηεθαλ νη αλάινγεο ηερλνινγίεο γηα ηελ πινπνίεζε ηεο, θαη ηέινο γίλεηαη αλαθνξά ησλ ζπκπεξαζκάησλ θαη ηξόπσλ βειηίσζεο ηεο εθαξκνγήο. ΛΔΞΔΙ ΚΛΔΙΓΙΑ Αλίρλεπζε θίλεζεο, Microsoft, DirectShow, Motion Detection, Video, Βίληεν, Camera, Filters, Pins, Media, Capture, Render, Sample Grabber, Visual Basic, Filter Graph.

ΠΔΡΙΔΥΟΜΔΝΑ 1 ΔΙΑΓΧΓΗ... 1 1.1 ΑΝΣΙΚΔΙΜΔΝΟ ΣΗ ΔΡΓΑΙΑ... 1 1.2 ΓΟΜΗ ΣΗ ΔΡΓΑΙΑ... 1 2 ΘΔΧΡΗΣΙΚΟ ΤΠΟΒΑΘΡΟ... 2 2.1 ΣΟ MICROSOFT WINDOWS COMPONENT OBJECT MODEL (COM)... 2 2.2 TO MICROSOFT.NET FRAMEWORK... 3 2.3 ΣΟ MICROSOFT DIRECTSHOW... 4 2.4 ΑΡΥΙΣΔΚΣΟΝΙΚΗ ΣΡΙΧΝ ΔΠΙΠΔΓΧΝ (THREE-TIER ARCHITECTURE)... 5 2.4.1 Δπίπεδν Παξνπζίαζεο (Presentation tier)... 7 2.4.2 Δπίπεδν Λνγηθήο (Logic tier)... 7 2.4.3 Δπίπεδν Γεδνκέλσλ (Data tier)... 7 3 Η ΑΝΑΠΣΤΞΗ ΣΗ ΔΦΑΡΜΟΓΗ... 8 3.1 ΣΔΥΝΟΛΟΓΙΔ ΚΑΙ ΔΡΓΑΛΔΙΑ ΠΟΤ ΥΡΗΙΜΟΠΟΙΗΘΗΚΑΝ... 8 3.1.1 Microsoft Visual Studio 2008 (VB.NET)... 8 3.1.2 Microsoft DirectShow... 9 3.1.3 DirectShow.NET βηβιηνζήθε... 10 3.1.4 Logitech QuickCam Pro 9000... 11 3.2 ΆΛΛΔ ΣΔΥΝΟΛΟΓΙΔ ΛΗΦΗ ΚΑΙ ΔΠΔΞΔΡΓΑΙΑ ΒΙΝΣΔΟ... 12 3.2.1 Adobe Flash... 13 3.2.2 Sun Java... 14 3.2.3 Microsoft Media Foundation... 15 3.3 ΚΡΙΣΗΡΙΑ ΓΙΑ ΣΗΝ ΔΠΙΛΟΓΗ ΣΧΝ ΣΔΥΝΟΛΟΓΙΧΝ ΚΑΙ ΔΡΓΑΛΔΙΧΝ... 16 4 Η ΔΦΑΡΜΟΓΗ... 17 4.1 ΓΟΜΗ ΣΗ ΔΦΑΡΜΟΓΗ... 18 4.1.1 Σν project ζην MS Visual Studio 2008... 18 4.1.2 Οη βηβιηνζήθεο θαη ηα Dependencies... 20 4.1.3 Σν Filter Graph... 23 4.1.4 Η θεληξηθή θόξκα Frm_Main... 24 4.1.5 Σν θεληξηθό module Mdl_Main... 33 5 ΤΜΠΔΡΑΜΑΣΑ... 41 5.1 ΘΔΜΑΣΑ ΒΔΛΣΙΧΗ... 42 ΒΙΒΛΙΟΓΡΑΦΙΑ... 43 ΠΑΡΑΡΣΗΜΑ... 45

1 ΔΙΑΓΧΓΗ ην θεθάιαην απηό γίλεηαη αλαθνξά ζην αληηθείκελν ηεο εξγαζίαο. Πνηνο είλαη ν ζηόρνο ηεο εθαξκνγήο θαη ζε πνηέο ηερλνινγίεο ζα επηθεληξσζεί. 1.1 Ανηικείμενο ηηρ επγαζίαρ Η εξγαζία απηή ζηνρεύεη ζηελ εμέηαζε κεξηθώλ ηερλνινγηώλ ιήςεο θαη επεμεξγαζίαο βίληεν από δσληαλή πεγή (live video stream) κε ζθνπό ηελ αλάπηπμε κηαο εθαξκνγήο ε νπνία κε ρξήζε ηέηνησλ ηερλνινγηώλ ζα κπνξεί επηηπρώο λα αληρλεύζεη θίλεζε κε αμηνπνίεζε ηεο ζπζθεπήο ιήςεο βίληεν ζε δσληαλό ρξόλν. Η έξεπλα θαη πινπνίεζε ζα γίλεη κε ρξήζε ηερλνινγηώλ ηεο Microsoft δηόηη επηιέμακε ην πεξηβάιινλ Windows γηα ηελ εθαξκνγή καο. Δπίζεο, ν ζθνπόο ηεο εξγαζίαο επηθεληξώλεηαη ζηελ επεμεξγαζία βίληεν γηα αλίρλεπζε θίλεζεο θαη όρη ζηελ κειέηε όισλ ησλ ηερλνινγηώλ ιήςεο βίληεν ζε δηάθνξεο πιαηθόξκεο. 1.2 Γομή ηηρ επγαζίαρ Σν ζύλνιν ηεο εξγαζίαο απνηειείηαη από ηέζζεξα θεθάιαηα εμαηξώληαο ην θεθάιαην ηεο εηζαγσγήο. ην πξώην θεθάιαην, γίλεηαη αλαθνξά ζην Θεσξεηηθό Τπόβαζξν πνπ ρξεηάδεηαη λα γλσξίδεη ν αλαγλώζηεο γηα ηελ θαηαλόεζε ηεο εξγαζίαο απηήο. Έπεηηα ζην δεύηεξν θεθάιαην, γίλεηαη εμέηαζε ζηελ Αλάπηπμε ηεο Δθαξκνγήο, ηηο ηερλνινγίεο θαη ηα εξγαιεία πνπ ρξεζηκνπνηήζεθαλ γηα ηελ δεκηνπξγία ηεο, θαζώο θαη αλαθνξά ζε παξόκνηεο ηερλνινγίεο αιιά θαη νη δηάθνξνη ιόγνη γηα ηελ επηινγή ησλ ζπγθεθξηκέλσλ ηερλνινγηώλ. ην ηξίην πηα θεθάιαην, είλαη ε παξνπζίαζε ηεο Δθαξκνγήο όπνπ εμεηάδεηαη ε δνκή ηεο αλαιπηηθά, μεθηλώληαο από ην project, ηηο βηβιηνζήθεο θαη ηα dependencies, έσο θαη ηηο θόξκεο. ην ηέηαξην θαη ηειεπηαίν θεθάιαην, είλαη ηα ζπκπεξάζκαηα, όπνπ γίλεηαη αλάιπζε ησλ απνηειεζκάησλ ηεο εθαξκνγήο αιιά θαη αλαθνξά ζε πηζαλνύο ηξόπνπο βειηίσζεο ηεο. 1

2 ΘΔΧΡΗΣΙΚΟ ΤΠΟΒΑΘΡΟ ην θεθάιαην απηό γίλεηαη αλαθνξά ζηηο δηάθνξεο ηερλνινγίεο πνπ πξέπεη λα γλσξίδεη ν αλαγλώζηεο γηα ηελ θαηαλόεζε ηεο εξγαζίαο απηήο. πγθεθξηκέλα γίλεηαη αλαθνξά ζηηο ηερλνινγίεο ηεο Microsoft: Windows Component Object Model (COM), NET Framework, DirectShow πνπ ρξεζηκνπνηήζεθαλ ζηελ εξγαζία θαζώο θαη ζηελ βηβιηνζήθε DirectShow.NET 2.1 Σο Microsoft Windows Component Object Model (COM) Η ηερλνινγία COM (Component Object Model) ηεο Microsoft ζηελ «νηθνγέλεηα» ησλ ιεηηνπξγηθώλ ζπζηεκάησλ Windows ηεο Microsoft, επηηξέπεη δηάθνξα αληηθείκελα (components) ινγηζκηθνύ λα επηθνηλσλήζνπλ κεηαμύ ηνπο. Η ηερλνινγία COM ρξεζηκνπνηείηαη από πξνγξακκαηηζηέο γηα ηελ δεκηνπξγία πνιύ-ρξεζηηθώλ αληηθεηκέλσλ ινγηζκηθνύ, ηελ ζύλδεζε ησλ αληηθεηκέλσλ απηώλ κεηαμύ ηνπο γηα ηελ δεκηνπξγία πξνγξακκάησλ ινγηζκηθνύ θαη γηα ηελ εθκεηάιιεπζε ησλ ππεξεζηώλ ησλ ιεηηνπξγηθώλ ζπζηεκάησλ Windows ηεο Microsoft. Σα COM αληηθείκελα κπνξνύλ λα δεκηνπξγεζνύλ κε ηελ ρξήζε δηαθόξσλ γισζζώλ πξνγξακκαηηζκνύ. Αληηθεηκελνζηξαθείο γιώζζεο, όπσο ε C++, παξέρνπλ πξνγξακκαηηζηηθνύο κεραληζκνύο πνπ απινπζηεύνπλ ηελ πινπνίεζε ησλ COM αληηθεηκέλσλ. Η «νηθνγέλεηα» ησλ COM ηερλνινγηώλ ζπκπεξηιακβάλεη θαη ηα COM+, δηαλεκεκέλσλ COM (DCOM) θαη ActiveX Controls [1]. Η Microsoft παξέρεη δηεπαθέο COM γηα πνιιέο εθαξκνγέο πξνγξακκαηηζκνύ Windows κε δηεπαθέο όπσο Direct Show, Media Foundation, Packaging API, Windows Animation Manager, Windows Portable Devices θαη Microsoft Active Directory (AD). Η εξγαζία θπζηθά πεξηνξίδεηαη ζηα Direct Show θαη Media Foundation, κηαο θαη απηά είλαη κέζα ην ζέκα ηεο [1]. Ο θύξηνο ζθνπόο ησλ COM είλαη ν ηξόπνο πινπνίεζεο αληηθεηκέλσλ ηα νπνία κπνξνύλ λα ρξεζηκνπνηεζνύλ ζε δηαθνξεηηθά πεξηβάιινληα από απηό πνπ δεκηνπξγήζεθαλ, αθόκα θαη ζε δηαθνξεηηθέο κεραλέο. Σα ζσζηά γξακκέλα αληηθείκελα 2

COM, κπνξνύλε λα επαλαρξεζηκνπνηεζνύλε ρσξίο λα επηβάιιεηαη ε γλώζε ιεηηνπξγίαο ηνπο εζσηεξηθά [2]. 2.2 To Microsoft.NET Framework Σν Microsoft.NET Framework είλαη έλα πιαίζην ινγηζκηθνύ πνπ κπνξεί λα εγθαηαζηαζεί ζε ειεθηξνληθνύο ππνινγηζηέο πνπ ρξεζηκνπνηνύλ ηα ιεηηνπξγηθά ζπζηήκαηα Windows ηεο Microsoft. Πεξηιακβάλεη κηα κεγάιε βηβιηνζήθε ζπλαξηήζεσλ ζε θώδηθα πνπ παξέρνπλ ιύζεηο ζε απιά πξνβιήκαηα αιιά πεξηιακβάλεη θαη κηα εηθνληθή κεραλή πνπ δηαρεηξίδεηαη ηελ εθηέιεζε ησλ πξνγξακκάησλ πνπ είλαη γξακκέλα ζπγθεθξηκέλα γηα ην.net Framework. ηελ νπζία ην πιαίζην ινγηζκηθνύ απηό είλαη κηα πξνζθνξά ηεο Microsoft γηα ρξήζε από ηηο λεόηεξεο εθαξκνγέο πνπ έρνπλ θηηαρηεί κε βάζε ηελ πιαηθόξκα ησλ Windows ηεο Microsoft [4]. Η βαζηθή θιάζε ηνπ πιαηζίνπ ηεο βηβιηνζήθεο απηήο παξέρεη κηα κεγάιε γθάκα ιεηηνπξγηώλ πνπ ζπκπεξηιακβάλνπλ ηελ δηεπαθή ρξήζηε (UI), επεμεξγαζία θαη πξόζβαζε ζε δεδνκέλα, ζπλδεζκνινγίεο βάζεσλ δεδνκέλσλ, θξππηνγξαθία, εθαξκνγέο δηαδηθηύνπ, αξηζκεηηθνύο αιγόξηζκνπο θαη δηθηπαθέο επηθνηλσλίεο. Η βηβιηνζήθε θιάζεσλ ρξεζηκνπνηείηαη από πξνγξακκαηηζηέο πνπ ηελ ζπλδπάδνπλ κε δηθό ηνπο θώδηθα γηα ηελ πινπνίεζε εθαξκνγώλ [4]. Σα πξνγξάκκαηα γξακκέλα γηα ην.net Framework εθηεινύληαη ζε έλα πεξηβάιινλ ινγηζκηθνύ ην νπνίν δηαρεηξίδεηαη ηηο αλάγθεο εθηέιεζεο ηνπ πξνγξάκκαηνο. Δπίζεο, κέξνο ηνπ.net Framework πεξηβάιινλ εθηέιεζεο είλαη γλσζηό σο Common Language Runtime (CLR). Σν CLR παξέρεη ηελ εηθόλα κηαο εθαξκνγήο εηθνληθήο κεραλήο, ώζηε νη πξνγξακκαηηζηέο λα κελ πξέπεη λα ζηνρεύνπλ ζε ζπγθεθξηκέλν επεμεξγαζηή γηα ηελ εθηέιεζε ηνπ πξνγξάκκαηνο ηνπο. Σν CLR παξέρεη επίζεο θαη άιιεο ζεκαληηθέο ππεξεζίεο όπσο είλαη ε αζθάιεηα, ε δηαρείξηζε κλήκεο θαη ιαζώλ. Η βηβιηνζήθε θιάζεσλ θαη ην CLR ζε ζπλδπαζκό, απνηεινύλ ην.net Framework [4]. 3

Δικόνα 2.2.1 Σο Microsoft.NET Framework ζσημαηικά [5] 2.3 Σο Microsoft DirectShow To Microsoft DirectShow είλαη κηα αξρηηεθηνληθή γηα ξνή πνιπκέζσλ ζηελ Microsoft Windows πιαηθόξκα. Σν DirectShow παξέρεη ππεξεζίεο πςειήο πνηόηεηαο γηα ζύιιεςε (capture) θαη αλαπαξαγσγή (play) πνιπκεζηθώλ ξνώλ (multimedia streams). Τπνζηεξίδεη κεγάιν εύξνο κνξθώλ (formats) ζπκπεξηιακβαλνκέλσλ Advanced Systems Format (ASF), Motion Picture Experts Group (MPEG), Audio-Video Interleaved (AVI), MPEG Audio Layer-3 (MP3), θαη ησλ αξρείσλ ήρνπ WAV. Τπάξρεη ε ππνζηήξημε γηα ζύιιεςε (capture) από ςεθηαθέο αιιά θαη αλαινγηθέο ζπζθεπέο νη νπνίεο είλαη βαζηζκέλεο ζηα κνληέια Windows Driver Model (WDM) ή Video for Windows. Μπνξεί λα αμηνπνηεί απηόκαηα επηηαρπληή πιηθνύ (hardware acceleration) 4

γηα βίληεν θαη ήρν όπνπ είλαη δηαζέζηκν. Φπζηθά κπνξεί λα ιεηηνπξγήζεη ζε ζπζηήκαηα θαη ρσξίο επηηαρπληή πιηθνύ [6]. To DirectShow είλαη βαζηζκέλν ζην κνληέιν Component Object Model (COM) πνπ πξναλαθέξζεθε ζην θεθάιαην 2.1. Γηα ηελ ρξήζε ηνπ DirectShow ζε εθαξκνγέο ή ζε αληηθείκελα, ζα πξέπεη λα ππάξρεη θαηαλόεζε COM client πξνγξακκαηηζκνύ. Γηα ηελ δεκηνπξγία ησλ πεξηζζόηεξσλ εθαξκνγώλ, δελ ρξεηάδεηαη ε πινπνίεζε COM αληηθεηκέλσλ ηνπ πξνγξακκαηηζηή πέξα απηώλ πνπ παξέρνληαη. Φπζηθά ππάξρεη ε δπλαηόηεηα επέθηαζεο ηνπ DirectShow από ηνλ πξνγξακκαηηζηή πνπ ζα ην ζειήζεη, αιιά ζα πξέπεη λα γξάςεη δηθά ηνπ COM αληηθείκελα [6]. Όιεο νη εθαξκνγέο πνπ ζέινπλ λα ρξεζηκνπνηήζνπλ ην DirectShow άκεζα, πξέπεη λα γξαθζνύλ ζε C++ δηόηη δελ ππάξρεη managed API γηα ην DirectShow [6]. *Η εξγαζία όκσο είλαη γξακκέλε ζε VB.NET θαη ρξεζηκνπνηεί ην DirectShow, απιά ην ρξεζηκνπνηεί «έκκεζα» κε ηελ ρξήζε κηαο έμηξα βηβιηνζήθεο ηεο DirectShow.NET όπνπ θαη ζα αλαθεξζεί ζην ακέζσο επόκελν θεθάιαην. Σν DirectShow δηεπθνιύλεη θαη απινπνηεί ηελ δηαδηθαζία αλαπαξαγσγήο πνιπκέζσλ, κεηαηξνπήο κνξθώλ θαη δηεξγαζηώλ ζύιιεςεο. Σαπηόρξνλα όκσο, παξέρεη πξόζβαζε ζηελ ξνή πνιπκέζσλ ηνπ θαηώηαηνπ αξρηηεθηνληθνύ επηπέδνπ γηα εθαξκνγέο πνπ ρξεηάδνληαη εηδηθέο ιεηηνπξγίεο / ιύζεηο. Τπάξρεη επίζεο θαη ε δπλαηόηεηα πινπνίεζεο λέσλ αληηθεηκέλσλ DirectShow γηα ηελ ππνζηήξημε λέσλ κνξθώλ ή εηδηθώλ εθέ [6]. 2.4 Απσιηεκηονική Σπιών Δπιπέδυν (Three-tier Architecture) Η αξρηηεθηνληθή ησλ ηξηώλ επηπέδσλ είλαη βαζηζκέλε ζην κνληέιν Πειάηε Δμππεξεηεηή ζην νπνίν ηα επίπεδα Παξνπζίαζεο, Λνγηθήο θαη Γεδνκέλσλ είλαη ζπλήζσο αλαπηπγκέλα μερσξηζηά θαη ιεηηνπξγνύλε ζπλήζσο ζε δηαθνξεηηθέο πιαηθόξκεο [21]. 5

Σν κνληέιν ηξηώλ επηπέδσλ ζεσξείηαη σο αξρηηεθηνληθή ινγηζκηθνύ θαη σο βαζηθό ζρέδην ζηελ ζρεδίαζε αλάπηπμε ινγηζκηθνύ [21]. Δπίπεδν Παξνπζίαζεο Laptop Δπίπεδν Λνγηθήο Δπίπεδν Γεδνκέλσλ Βάζε Γεδνκέλσλ Δικόνα 2.4.1 Σο μονηέλο απσιηεκηονικήρ ηπιών επιπέδυν Η αξρηηεθηνληθή 3 επηπέδσλ έρεη πνιιά ζεηηθά. Γηα παξάδεηγκα ην θάζε επίπεδν κπνξεί λα αλαπηπρζεί, αλαβαζκηζηεί θαη αληηθαηαζηαζεί μερσξηζηά αλάινγα κε ηηο απαηηήζεηο ή ηερλνινγηθέο αιιαγέο. Έηζη ζηελ πεξίπησζε πνπ αιιάμεη ην ιεηηνπξγηθό ζύζηεκα, ην κόλν πνπ ζα επεξεαζηεί ζα είλαη ην Δπίπεδν Παξνπζίαζεο. πλήζσο ην επίπεδν παξνπζίαζεο εθηειείηαη ηνπηθά ζε έλαλ ππνινγηζηή, ην επίπεδν ινγηθήο κπνξεί λα απνηειείηαη από πνιιά ηκήκαηα εθηεινύκελα ζε θάπνηνλ εμππεξεηεηή γεληθήο ρξήζεο θαη ηέινο ην επίπεδν δεδνκέλσλ πνπ ζπλήζσο είλαη εμππεξεηεηήο βάζεο δεδνκέλσλ μερσξηζηόο από ηα άιια ζπζηήκαηα. 6

2.4.1 Δπίπεδο Παποςζίαζηρ (Presentation tier) Σν θνξπθαίν επίπεδν ηεο εθαξκνγήο. ην επίπεδν παξνπζίαζεο απεηθνλίδνληαη νη πιεξνθνξίεο ζρεηηθά κε ηηο ππεξεζίεο θαη επηινγέο ηεο εθαξκνγήο. Από εθεί ν ρξήζηεο αιιειεπηδξά κε ηελ εθαξκνγή. Οπνηαδήπνηε είζνδνο δεδνκέλσλ ηνπ ρξήζηε πξνο ηελ εθαξκνγή, ζα γίλεη κέζσ απηνύ ηνπ επηπέδνπ θαη αληίζηξνθα. ηελ εθαξκνγή ηεο εξγαζίαο, ην επίπεδν παξνπζίαζεο έρεη σο είζνδν ηα αληηθείκελα ξπζκίζεσο ηνπ αιγόξηζκνπ αλίρλεπζεο θίλεζεο θαζώο θαη σο έμνδν ηελ επεμεξγαζκέλε εηθόλα βίληεν. 2.4.2 Δπίπεδο Λογικήρ (Logic tier) Σν κεζαίν επίπεδν ηεο εθαξκνγήο. ην επίπεδν ινγηθήο γίλεηαη ε επεμεξγαζία ησλ δεδνκέλσλ εηζόδνπ, εμόδνπ θαζώο θαη ε ιήςε απνθάζεσλ από ηελ εθαξκνγή αλάινγα κε ηηο αλάγθεο θαη ηνλ ζρεδηαζκό ηεο. ηελ εθαξκνγή ηεο εξγαζίαο, ην επίπεδν ινγηθήο αλαιακβάλεη ηελ εθηέιεζε ηνπ αιγόξηζκνπ αλίρλεπζεο θίλεζεο βάζεη ηηο επηινγέο ηνπ ρξήζηε θαη ηελ επεμεξγαζία ηεο εηθόλαο βίληεν πξνο έμνδν. 2.4.3 Δπίπεδο Γεδομένυν (Data tier) Σν ηειεπηαίν επίπεδν ηεο εθαξκνγήο. ην επίπεδν δεδνκέλσλ απνζεθεύνληαη ζπλήζσο ηα εηζαγόκελα δεδνκέλα από ηνλ ρξήζηε ή ρξεζηκνπνηνύληαη ηα ήδε ππάξρνληα δεδνκέλα γηα ηελ ηξνθνδόηεζε ηεο εθαξκνγήο. Δπίζεο ππάξρεη θαη ε δπλαηόηεηα επεμεξγαζίαο, αλαδήηεζεο θαη θνξκαξίζκαηνο ησλ δεδνκέλσλ απηώλ από ην επίπεδν δεδνκέλσλ. ηελ εθαξκνγή ηεο εξγαζίαο ην επίπεδν δεδνκέλσλ κπνξεί λα ζεσξεζεί ε κλήκε ηνπ ππνινγηζηή θαη πηζαλώο ε πεγή ηεο εηθόλαο βίληεν πξηλ ηελ επεμεξγαζία ηεο. 7

3 Η ΑΝΑΠΣΤΞΗ ΣΗ ΔΦΑΡΜΟΓΗ Τπάξρνπλ ηξία κέξε ζην θεθάιαην απηό. ην πξώην κέξνο, γίλεηαη αλάιπζε ζηηο Σερλνινγίεο θαη ηα Δξγαιεία πνπ ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε ηεο εθαξκνγήο. ην δεύηεξν κέξνο, εμεηάδνληαη άιιεο ηερλνινγίεο ιήςεο θαη επεμεξγαζίαο βίληεν πνπ ζα κπνξνύζαλ λα ρξεζηκνπνηεζνύλ γηα ηελ πινπνίεζε ηεο εθαξκνγήο. Σέινο, αλαιύνληαη ηα θξηηήξηα γηα ηελ επηινγή ησλ ηερλνινγηώλ θαη εξγαιείσλ πνπ επηιέρηεθαλ γηα ηελ πινπνίεζε ηεο εθαξκνγήο. 3.1 Σεσνολογίερ και Δπγαλεία πος σπηζιμοποιήθηκαν Γηα ηελ αλάπηπμε ηεο εθαξκνγήο ηεο εξγαζίαο απηήο, ρξεζηκνπνηήζεθε ε ηερλνινγία DirectShow θαη ην εξγαιείν Visual Studio 2008 ηεο εηαηξίαο Microsoft θαζώο θαη ε βηβιηνζήθε DirectShow.NET πνπ είλαη πινπνηεκέλε από κηα αλεμάξηεηε νκάδα πξνγξακκαηηζηώλ θαη παξέρεηαη δσξεάλ. Όια ηα παξαπάλσ ρξεζηκνπνηήζεθαλ ζε ζπλδπαζκό θαη ζα αλαιπζεί ν ηξόπνο ζηα επόκελα θεθαιαία. 3.1.1 Microsoft Visual Studio 2008 (VB.NET) Σν Visual Studio 2008 ηεο Microsoft είλαη κία νινθιεξσκέλε ζνπίηα εξγαιείσλ γηα ηελ δεκηνπξγία desktop αιιά θαη νκαδηθώλ δηθηπαθώλ εθαξκνγώλ εηαηξηθνύ επηπέδνπ. Πέξα ηελ δπλαηόηεηα δεκηνπξγίαο πςειώλ επηδόζεσλ desktop εθαξκνγώλ, κπνξεί λα ρξεζηκνπνηεζνύλ ηα δπλακηθά component-based εξγαιεία αλάπηπμεο ηνπ Visual Studio θαη άιιεο ηερλνινγίεο γηα ηελ απινπνίεζε ηεο νκαδηθήο ζρεδίαζεο, αλάπηπμεο θαη δηαλνκήο εηαηξηθώλ ιύζεσλ [8]. Μέζσ ηνπ Visual Studio ππάξρεη ε δπλαηόηεηα δεκηνπξγίαο εθαξκνγώλ ζε δηάθνξεο γιώζζεο πξνγξακκαηηζκνύ όπσο Visual Basic, Visual C#, Visual C++, Visual J#, Jscript θαη άιισλ. Όιεο θπζηθά νη γιώζζεο πξνγξακκαηηζκνύ κέζσ ηνπ Visual Studio έρνπλε ηελ πξόζβαζε γηα ρξήζε ηνπ.net Framework αιιά θαη δηαθόξσλ ηερλνινγηώλ πνπ παξέρνληαη κε ην Visual Studio ή είλαη εγθαηεζηεκέλεο ζην εθάζηνηε ζύζηεκα. 8

3.1.2 Microsoft DirectShow ην θεθάιαην 2.3 έγηλε κηα εθηελήο αλαθνξά ζην DirectShow ηεο Microsoft. Σν θεθάιαην απηό όκσο επηθεληξώλεηαη ζηα δηάθνξα αληηθείκελα (components) ηνπ DirectShow πνπ ρξεζηκνπνηήζεθαλ από ηελ εθαξκνγή θαζώο θαη ζηελ ιεηηνπξγία ηνπο. ηελ παξαθάησ εηθόλα 3.1.2.1 παξνπζηάδεηαη ην δηάγξακκα ζρέζεσλ κεηαμύ ηεο εθαξκνγήο, ησλ αληηθεηκέλσλ DirectShow θαζώο θαη κεξηθνύ πιηθνύ, ινγηζκηθνύ πνπ ππνζηεξίδεη. Δικόνα 3.1.2.1 Γιάγπαμμα ζσέζευν Δθαπμογήρ, DirectShow components, Software/Hardware [6] Σν DirectShow ρξεζηκνπνηεί κηα κνξθσκαηηθή αξρηηεθηνληθή, όπνπ θάζε ζηάδην επεμεξγαζίαο γίλεηαη από έλα COM αληηθείκελν πνπ νλνκάδεηαη θίιηξν. Σν DirectShow παξέρεη έλα πξόηππν ζεη θίιηξσλ γηα ρξήζε από εθαξκνγέο αιιά ππάξρεη θαη ε δπλαηόηεηα δεκηνπξγίαο λένπ εηδηθνύ θίιηξνπ από πξνγξακκαηηζηέο εθηείλνληαο έηζη ηελ ιεηηνπξγία ηνπ DirectShow. 9

Παξαθάησ είλαη κηα ιίζηα κε ηηο δηεπαθέο (θίιηξα) ηνπ DirectShow πνπ ρξεζηκνπνηήζεθαλ από ηελ εθαξκνγή: IGraphBuilder Η δηεπαθή απηή έρεη θύξηα ιεηηνπξγία ηε δεκηνπξγία ηνπ Filter Graph. Δπίζεο κπνξεί λα ελώζεη Pins από Φίιηξα, δειαδή λα ελώζεη δύν θίιηξα κεηαμύ ηνπο. ICaptureGraphBuilder2 Η δηεπαθή απηή δεκηνπξγεί ην Capture Graph θαη άιια Custom Filter Graphs. ISampleGrabber Η δηεπαθή απηή θάλεη ζπιιήςεηο ησλ δεδνκέλσλ εηθόλαο / βίληεν πνπ πεξλάλε από απηό θαη ηα απνζεθεύεη ζε εηδηθό buffer γηα ρξήζε από ηελ εθαξκνγή. IMediaEventEx Η δηεπαθή απηή αλαιακβάλεη ηελ ελεκέξσζε ηεο εθαξκνγήο γηα δηάθνξα γεγνλόηα πνπ ζπκβαίλνπλ ζην Graph. Γηα παξάδεηγκα ηνλ ηεξκαηηζκό ηεο ξνήο βίληεν. IMediaControl Μέζσ ηεο δηεπαθήο απηήο γίλεηαη ν έιεγρνο ξνήο ησλ δεδνκέλσλ ζην Graph. Γειαδή κε απηή ηε δηεπαθή μεθηλάεη ή ζηακαηάεη ε ξνή ηνπ βίληεν. IVideoWindow Η δηεπαθή πξνβνιήο ησλ δεδνκέλσλ βίληεν. Καζνξίδεη ηελ ηνπνζεζία, ην κέγεζνο θαη ηελ ηδηνθηεζία ηνπ παξαζύξνπ βίληεν κέζα ζηελ εθαξκνγή. 3.1.3 DirectShow.NET βιβλιοθήκη Ο ζθνπόο ηεο βηβιηνζήθεο απηήο είλαη ε «πξόζβαζε» ζην DirectShow ηεο Microsoft κέζσ.net εθαξκνγώλ. Η βηβιηνζήθε απηή ππνζηεξίδεη ηηο γιώζζεο Visual Basic.NET θαη C#, αλ θαη ζεσξεηηθά ζα ιεηηνπξγεί κε νπνηαδήπνηε.net γιώζζα πξνγξακκαηηζκνύ [7]. Η Microsoft δίλεη ηελ δπλαηόηεηα ρξήζεο ηνπ DirectShow κόλν από ηελ C++ γιώζζα πξνγξακκαηηζκνύ ελώ κε ηελ βηβιηνζήθε απηή ππάξρεη ε δπλαηόηεηα ρξήζεο ηεο κέζσ.net, κάιηζηα παξέρεηαη ζηνπο πξνγξακκαηηζηέο ε πιήξεο γθάκα ησλ 10

δπλαηνηήησλ ηνπ DirectShow, όια ηα enums, strucs θαη interface definitions πνπ ρξεηάδνληαη [7]. Η βηβιηνζήθε απηή ζηελ νπζία δελ έρεη ζρεδόλ θαζόινπ εθηειέζηκν θώδηθα. Τπάξρνπλ κόλν ιίγεο βνεζεηηθέο ζπλαξηήζεηο (πεξηζζόηεξν ζην DsUtils.cs), όια ηα ππόινηπα όκσο ζηελ βηβιηνζήθε είλαη απιόο δειώζεηο (definitions) [7]. πλνδεπηηθά κε ηελ βηβιηνζήθε δελ ππάξρεη θάπνην εγρεηξίδην ρξήζεο ηεο, παξά κόλν κεξηθά παξαδείγκαηα από ηα νπνία κόλν έλα ήηαλ γξακκέλν ζε VB.NET. Απηό ζπκβαίλεη όκσο δηόηη ε βηβιηνζήθε απηή είλαη ζηελ νπζία ην DirectShow θαη ην εγρεηξίδην ρξήζεο απηνύ, είλαη θαη ην εγρεηξίδην ρξήζεο ηεο βηβιηνζήθεο DirectShow.NET. Σα παξαδείγκαηα είλαη ζε C# θαη ε κεηαηξνπή ηνπο ζε VB.NET απαηηεί γεληθέο γλώζεηο θαη ησλ δύν γισζζώλ πξνγξακκαηηζκνύ. 3.1.4 Logitech QuickCam Pro 9000 Δικόνα 3.1.4.1 H web camera (usb) QuickCam Pro 9000 ηηρ Logitech 11

Γηα ηελ αλάπηπμε, δνθηκή θαη παξνπζίαζε ηεο εθαξκνγήο ηεο εξγαζίαο επηιέρηεθε ε Logitech QuickCam Pro 9000 USB web camera (εηθόλα 3.1.4.1). Η επηινγή ηνπ ζπγθεθξηκέλνπ κνληέινπ έγηλε ιόγν ησλ πνιύ θαιώλ ραξαθηεξηζηηθώλ πνπ δηαζέηεη, κεξηθά εθ ησλ νπνίσλ ήηαλ απαξαίηεηα γηα ηελ θαιύηεξε πνηόηεηα ησλ απνηειεζκάησλ ηεο εξγαζίαο. Κύξην ραξαθηεξηζηηθό ηεο θάκεξαο είλαη ν Carl Zeiss θαθόο πνπ δηαζέηεη [10]. Carl Zeiss είλαη κηα πνιύ γλσζηή εηαηξία ζηνλ ρώξν ησλ εηδηθεπκέλσλ θαθώλ θσηνγξαθίαο θαη βηληενζθόπεζεο [11]. Μηα άιιε βαζηθή ζεκαληηθή ιεηηνπξγία ηεο ζπγθεθξηκέλεο θάκεξαο είλαη ε απηόκαηε εζηίαζε ηνπ θαθνύ, σο απνηέιεζκα ππάξρεη ζπλερή «θαζαξή» εηθόλα ρσξίο ηελ απαίηεζε ξύζκηζεο από αλζξώπηλν ρέξη [10]. Αλαθέξνληαο ηα ζηνηρεία ηνπ αηζζεηήξα ηεο θάκεξαο έρεη, ππέξ-πςειή αλάιπζε ησλ 2 mega-pixel κε ηελ ηερλνινγία RightLight 2. Σν βάζνο ρξώκαηνο ηνπ βίληεν πνπ ζπιιακβάλεη ε θάκεξα είλαη 24-bit πξαγκαηηθό ρξώκα ζε αλαιύζεηο πνπ θηάλνπλ έσο θαη ηα 1600x1200 εηθνλνζηνηρεία θαη κε θαξέ-ην-δεπηεξόιεπην έσο θαη 30 (fps) [10]. Σέινο, πέξαλ όισλ ησλ παξαπάλσ ραξαθηεξηζηηθώλ πνπ θαηέζηεζαλ ηελ επηινγή ηεο θάκεξαο απηήο ηδαληθή γηα ηελ εθαξκνγή ηεο εξγαζίαο, είλαη ε ζπλδεζκνινγία USB πνπ δηαζέηεη γηα ηελ απινύζηεξε θαη ηαρύηαηε εγθαηάζηαζε ηεο θαζώο θαη ε πιήξεο ππνζηήξημε νδεγώλ ιεηηνπξγίαο ηεο, γηα ηα ιεηηνπξγηθά ζπζηήκαηα Windows ηεο εηαηξίαο Microsoft. 3.2 Άλλερ ηεσνολογίερ λήτηρ και επεξεπγαζίαρ βίνηεο ηα πξνεγνύκελα θεθάιαηα έγηλε αλάιπζε ησλ ηερλνινγηώλ θαη εξγαιείσλ πνπ ρξεζηκνπνηήζεθαλ από ηελ εθαξκνγή ηεο εξγαζίαο. ε απηό ην θεθάιαην ζα γίλεη αλαθνξά ζε κεξηθέο από ηηο άιιεο ηερλνινγίεο θαη ηα εξγαιεία πνπ κπνξνύλ λα ρξεζηκνπνηεζνύλ γηα ηελ δεκηνπξγία ηνπ ίδηνπ ή παξόκνηνπ απνηειέζκαηνο κε ηελ εθαξκνγή ηεο εξγαζίαο. 12

3.2.1 Adobe Flash To Adobe Flash CS4 Professional είλαη έλα ινγηζκηθό ζπγγξαθήο δηαδξαζηηθώλ πνιπκεζηθώλ εθαξκνγώλ εηδηθό γηα ζρεδηαζηέο πνιπκέζσλ, γξαθίζηεο θαη πξνγξακκαηηζηέο [12]. Σν Flash κπνξεί λα επεμεξγαζηεί δηαλύζκαηα θαη δηαλπζκαηηθά γξαθηθά. Τπνζηεξίδεη ηαπηόρξνλε ιήςε θαη απνζηνιή εηθόλαο βίληεν θαη ήρνπ. Πεξηέρεη κηα γιώζζα scripting νλνκαδόκελε ActionScript. Τπάξρνπλ πνιιέο εθαξκνγέο ινγηζκηθνύ πνπ έρνπλ ηελ δπλαηόηεηα εθηέιεζεο / αλαπαξαγσγήο πεξηερνκέλνπ Flash, κεξηθέο εθαξκνγέο είλαη ην Adobe Flash Player, θπιινκεηξεηέο ηζηνζειίδσλ (web browsers) θαζώο θαη ζπζθεπέο πνιπκέζσλ όπσο είλαη ηα θηλεηά / PDA / θ.α. κε ππνζηήξημε αλαπαξαγσγήο Flash πεξηερνκέλνπ. Με ην Adobe Flash ππάξρεη ε δπλαηόηεηα δεκηνπξγίαο εθαξκνγώλ ηζηνύ, παηρληδηώλ κέρξη θαη ηαηληώλ [13]. Σα αξρεία κνξθήο Flash, έρνπλ ζπλήζσο ηελ θαηάιεμε.swf θαη νλνκάδνληαη «ShockWave Flash» ηαηλίαο, «Flash Movies» ή «Flash Games» θαη κπνξνύλε λα είλαη αληηθείκελα ηζηνζειίδαο, λα γίλεηαη ε αλαπαξαγσγή ηνπο από μερσξηζηό Flash Player ή λα είλαη ελζσκαησκέλα ζε πξνβνιέα, δειαδή ελζσκάησζε ζε εθηειέζηκν αξρείν ηεο ηαηλίαο θαη ηνπ πξνβνιέα κε θαηάιεμε.exe ζηα Microsoft Windows θαη.hqx ζηα Macintosh. Σα αξρεία Flash Video έρνπλ ηελ θαηάιεμε.flv θαη είλαη είηε ελζσκαησκέλα ζε αξρεία.swf είηε μερσξηζηά γηα αλαπαξαγσγή από ζπκβαηό FLV player όπσο ην VLC, QuickTime θ.η.ι. [13]. Όπσο πξναλαθέξζεθε, ην Adobe Flash έρεη ηελ δπλαηόηεηα ιήςεο εηθόλαο βίληεν θαη θπζηθά ηελ δπλαηόηεηα επεμεξγαζίαο ηνπ. Πην ζπγθεθξηκέλα, κε ηελ θιάζε Camera ηνπ ActionScript 3.0 ππάξρεη εύθνια ε δπλαηόηεηα ιήςεο θαη έπεηηα επεμεξγαζία εηθόλαο βίληεν από ηνπηθή ζπζθεπή βίληεν [14]. Φπζηθά έλα από ηα κεγαιύηεξα ζεηηθά ηνπ Adobe Flash είλαη όηη κπνξεί λα γίλεη εθηέιεζε / αλαπαξαγσγή ησλ αξρείσλ.swf,.flv ζε δηάθνξεο πιαηθόξκεο όπσο είλαη ηα 13

Windows ηεο Microsoft, Macintosh ηεο Apple, Linux, θ.η.ι. Έηζη κε ηνλ ίδην θώδηθα / θόπν, ν πξνγξακκαηηζηήο κπνξεί λα ζηνρεύζεη ζε κηα κεγάιε γθάκα ειεθηξνληθώλ ππνινγηζηηθώλ ζπζηεκάησλ. 3.2.2 Sun Java Η ηερλνινγία Java έρεη γίλεη πηα κηα νινθιεξσκέλε ιύζε ινγηζκηθνύ πνπ αληηπξνζσπεύεη δηάθνξνπο ηύπνπο θαηαλαισηώλ αιιά θαη επαγγεικαηηώλ. Πξνζθέξεη ζηνπο πξνγξακκαηηζηέο επηινγή από ηξείο πιαηθόξκεο ηεο Java αλάινγα κε ηηο αλάγθεο ηνπο [15]. o Java ηερλνινγία γηα κηθξέο θαη θνξεηέο ζπζθεπέο o Java ηερλνινγία γηα desktop PC o Java ηερλνινγία γηα κεζαίεο έσο θαη κεγάιεο επηρεηξήζεηο Παξόκνηα κε ηελ Adobe Flash, νη εθαξκνγέο Java δελ πεξηνξίδνληαη ζε έλα ζπγθεθξηκέλν ηύπν επεμεξγαζηώλ (cpu) θαζώο θαη ζε ζπγθεθξηκέλα ιεηηνπξγηθά ζπζηήκαηα. Η Java ιεηηνπξγεί ρξεζηκνπνηώληαο κία virtual machine θαη έλαλ compiler κε έλα ζεη βηβιηνζεθώλ, πνπ είλαη πινπνηεκέλεο γηα δηάθνξα πιηθά θαη ιεηηνπξγηθά ειεθηξνληθώλ ππνινγηζηώλ, έηζη ε Java θαηαθέξλεη λα εθηειεζηεί κε ηνλ ίδην αθξηβώο ηξόπν ζε όια [16]. 14

Δικόνα 3.2.2.1 Γιάγπαμμα ηηρ πλαηθόπμαρ Java [16]. Η Java, όπσο θαη ην Adobe Flash, έρεη ηε δπλαηόηεηα ιήςεο θαη επεμεξγαζίαο εηθόλαο βίληεν. Άξα ζα κπνξνύζε εύθνια λα ρξεζηκνπνηεζεί θαη απηή ε γιώζζα πξνγξακκαηηζκνύ γηα ηελ πινπνίεζε ηεο εθαξκνγήο ηεο εξγαζίαο. 3.2.3 Microsoft Media Foundation Πέξαλ ηνπ DirectShow, κηα από ηηο ηερλνινγίεο ηεο εηαηξίαο Microsoft γηα ηελ ιήςε θαη επεμεξγαζία βίληεν, είλαη ην Microsoft Media Foundation. To Media Foundation ηεο Microsoft είλαη ε επόκελε γεληά πνιπκεζηθήο πιαηθόξκαο γηα ηα Windows πνπ επηηξέπεη ηνπο πξνγξακκαηηζηέο, θαηαλαισηέο, θαη πξνκεζεπηέο πεξηερνκέλνπ λα αμηνπνηήζνπλ ην λέν θύκα πνιπκεζηθνύ πεξηερνκέλνπ κε ηαρύηεηα, απαξάκηιιε πνηόηεηα, θαη εύθνιε δηαιεηηνπξγηθόηεηα [17]. Οη κνξθέο ςεθηαθήο ςπραγσγίαο κεηαθέξνληαη ζηελ επνρή ηνπ High-Definition θαη ηα πνιπκέζα γίλνληαη όιν θαη πην θνξεηά. Σν Media Foundation εγγπάηαη ηελ ππνζηήξημε απηνύ ηνπ λένπ θύκαηνο [17]. 15

Δικόνα 3.2.3.1 Γιάγπαμμα ςτηλού επιπέδος ηηρ απσιηεκηονικήρ Media Foundation [18]. To Media Foundation είλαη ζηελ νπζία έλα COM-based πνιπκεζηθό πιαίζην θαη κηα ππνδνκή πιαηθόξκαο γηα ςεθηαθά κέζα ζηα Windows Vista. Δίλαη ν αληηθαηαζηάηεο ησλ ηερλνινγηώλ Microsoft DirectShow, Windows Media SDK, DirectX Media Objects (DMOs) θαη δηαθόξσλ άιισλ μεπεξαζκέλσλ ηερλνινγηώλ πνιπκέζσλ όπσο ησλ Audio Compression Manager (ACM) θαη Video for Windows (VfW). Η ππάξρνπζα ηερλνινγία DirectShow ζα αληηθαηαζηαζεί από ην Media Foundation βήκαπξνο-βήκα, μεθηλώληαο από ηηο λέεο ιεηηνπξγίεο. Γηα έλα νξηζκέλν δηάζηεκα ζα ζπλππάξρνπλ θαη νη δύν ηερλνινγίεο. Σν Media Foundation όκσο δελ ζα ππάξμεη γηα παιαηόηεξεο εθδόζεηο ησλ Windows, ζπκπεξηιακβαλνκέλνπ ησλ Windows XP [19]. 3.3 Κπιηήπια για ηην επιλογή ηυν ηεσνολογιών και επγαλείυν Η επηινγή ησλ ηερλνινγηώλ θαη εξγαιείσλ γηα ηελ δεκηνπξγία ηεο εθαξκνγήο έγηλαλ κε βάζε νξηζκέλεο παξακέηξνπο. Η πξώηε θαη ζεκαληηθόηεξε παξάκεηξνο ήηαλ λα επηιεγεί κηα ηερλνινγία ιήςεο θαη επεμεξγαζίαο εηθόλαο βίληεν ε νπνία λα ππάξρεη αξθεηό θαηξό, λα είλαη ώξηκε θαη λα ζπκπεξηιακβάλεη ηηο δπλαηόηεηεο πνπ απαηηεί ε εξγαζία. Σαπηόρξνλα ε επηινγή απηή ζα έπξεπε λα ήηαλ θαη ζπκβαηή κε ηελ πιαηθόξκα πινπνίεζεο ηεο εθαξκνγήο ηεο εξγαζίαο, πνπ ήηαλ ηα Microsoft Windows 16

Vista. Έηζη επηιέρηεθε ην Microsoft DirectShow ην νπνίν ππάξρεη αξθεηά ρξόληα θαη πιεξνί ηηο πξνϋπνζέζεηο πνπ απαηηή ε εθαξκνγή ηεο εξγαζίαο. Σν επόκελν βήκα ήηαλ ε επηινγή ηεο γιώζζαο πξνγξακκαηηζκνύ πνπ ζα έπξεπε λα ήηαλ ζπκβαηή κε ηελ ηερλνινγία DirectShow θαη θπζηθά λα κπνξνύζε λα ηελ αμηνπνηήζεη πιήξσο. Οη επηινγέο πηα ήηαλ πεξηνξηζκέλεο θαη έηζη επηιέρηεθε ε Microsoft Visual Basic.NET 2008 κε ρξήζε ηεο βηβιηνζήθεο DirectShow.NET σο reference. Η επηινγή ηεο ζπγθεθξηκέλεο γιώζζαο πξνγξακκαηηζκνύ έγηλε δηόηη, ε εξγαζία ζα κπνξνύζε λα επηθεληξσζεί ζηελ επεμεξγαζία ηεο εηθόλαο βίληεν γηα ηελ αλίρλεπζε θίλεζεο, ρσξίο λα ππάξρεη επηπιέσλ πνιππινθόηεηα ζηνλ θώδηθα ιόγν ηεο απιόηεηαο ηεο Visual Basic ζαλ γιώζζα πξνγξακκαηηζκνύ. ηα πξνεγνύκελα θεθάιαηα έγηλε αλαθνξά ζε δηαθνξεηηθέο ηερλνινγίεο πνπ ζα κπνξνύζαλε πηζαλώλ λα αμηνπνηεζνύλε γηα ηελ πινπνίεζε ηεο εθαξκνγήο ηεο εξγαζίαο. ε κεξηθέο πεξηπηώζεηο όκσο ε πνιππινθόηεηα πινπνίεζεο ηνπο ζα ήηαλ κεγαιύηεξε από ηνλ θώδηθα αλίρλεπζεο θίλεζεο κε απνηέιεζκα λα επηθεληξώλεηαη ε εξγαζία ζε ιάζνο ζηόρνπο. Δπίζεο, ζε νξηζκέλεο από ηηο πξναλαθεξζείζεο δηαθνξεηηθέο ηερλνινγίεο ε πινπνίεζε ηεο εξγαζίαο ζα ήηαλ αδύλαηε κε ηα ίδηα πνηνηηθά απνηειέζκαηα ιόγν ηνπ παξάγνληα απόδνζεο / ηαρύηεηαο επεμεξγαζίαο ησλ εθάζηνηε ιύζεσλ ζε ζύγθξηζε κε ηελ ηειηθή επηινγή. 4 Η ΔΦΑΡΜΟΓΗ ην θεθάιαην απηό ζα γίλεη αλάιπζε ησλ βεκάησλ αλάιπζεο θαη πινπνίεζεο ηεο εθαξκνγήο ηεο εξγαζίαο. Πξώηα ζα γίλεη πξνβνιή ηεο δηαδηθαζίαο δεκηνπξγίαο ηνπ Project ζην Microsoft Visual Studio 2008 θαη έπεηηα ε παξακεηξνπνίεζε ηνπ γηα ηελ ρξήζε ησλ βηβιηνζεθώλ πνπ απαηηνύζε ε εθαξκνγή. Έπεηηα, ζα γίλεη αλάιπζε ηνπ Filter Graph πνπ ρξεζηκνπνηήζεθε κέζσ ηνπ DirectShow γηα ηελ ιήςε θαη επεμεξγαζία εηθόλαο βίληεν. Σέινο ζα γίλεη παξνπζίαζε θαη αλάιπζε ηεο θεληξηθήο θόξκαο θαη ηνπ θεληξηθνύ Module πνπ πεξηέρεη ην κεγαιύηεξν ηκήκα θώδηθα ηεο εθαξκνγήο. 17

4.1 Γομή ηηρ εθαπμογήρ Γηα ηελ θαιύηεξε θαηαλόεζε ηεο δνκήο ηεο εθαξκνγήο ηεο εξγαζίαο ζε πςειό επίπεδν, δεκηνπξγήζεθε ην παξαθάησ δηάγξακκα ηεο αξρηηεθηνληθήο ηεο (εηθόλα 4.1.1). C Logitech QuckCam 9000 Pro (Πεγή βίληεν) DirectShow Filter Graph DirectShow.NET Βηβιηνζήθε Δθαξκνγή ηεο Δξγαζίαο VB.NET Απνηειέζκαηα Δπεμεξγαζίαο Δικόνα 4.1.1 Γιάγπαμμα ςτηλού επιπέδος ηηρ απσιηεκηονικήρ ηηρ εθαπμογήρ ηηρ επγαζίαρ. ην παξαπάλσ δηάγξακκα (εηθόλα 4.1.1) ππάξρεη πξώηα ε Πεγή Βίληεν πνπ δέρεηαη ηελ εηθόλα βίληεν αλαινγηθά θαη ηελ εμάγεη ςεθηαθά ζηελ είζνδν ηνπ Filter Graph ηνπ DirectShow. Έπεηηα, ε βηβιηνζήθε DirectShow.NET αλαιακβάλεη ηελ «κεηάθξαζε» ησλ δηεπαθώλ ηνπ DirectShow γηα ζπκβαηόηεηα.net θαη εμάγεη ζηελ νπζία ηελ εηθόλα ςεθηαθνύ βίληεν ζηελ είζνδν ηεο εθαξκνγήο πνπ είλαη γξακκέλε ζε Visual Basic.NET. Σέινο ε εθαξκνγή επεμεξγάδεηαη ηελ ςεθηαθή εηθόλα βίληεν θαη εμάγεη ηα απνηειέζκαηα ζηνλ ρξήζηε κέζσ ηεο γξαθηθήο δηεπαθήο ρξήζηε (GUI). 4.1.1 Σο project ζηο MS Visual Studio 2008 Η δηαδηθαζία δεκηνπξγίαο κίαο λέαο εθαξκνγήο ζε Visual Basic κέζσ ηνπ Visual Studio 2008 ηεο Microsoft είλαη πάξα πνιύ απιή. Αλνίγνληαο ην κελνύ «File» επηιέγνληαο «New Project» πξνβάιιεηαη ε παξαθάησ θόξκα (εηθόλα 4.1.1.1) 18

Δικόνα 4.1.1.1 Η θόπμα δημιοςπγίαρ νέος project ζηο Visual Studio 2008 [9] πκπιεξώλνληαο ην όλνκα ηεο εθαξκνγήο πξνο αλάπηπμε, επηιέγνληαο ηελ γιώζζα πξνγξακκαηηζκνύ θαη ην template, έρεη όια όζα ρξεηάδεηαη ην Visual Studio 2008 γηα ηελ δεκηνπξγία ελόο λένπ project ζπγθεθξηκέλα ζε Visual Basic.NET θαη κε κηα βαζηθή θόξκα / παξάζπξν. Σν πεξηβάιινλ ρξήζηε (UI) ηνπ Visual Studio 2008 είλαη ζρεδηαζκέλν κε βάζε ηελ απιόηεηα θαη επρξεζηία, ρσξίο θπζηθά λα πζηεξεί ζε ιεηηνπξγηθόηεηα. ηελ παξαθάησ εηθόλα 4.1.1.2 παξνπζηάδεηαη θνξησκέλν ην project ηεο εθαξκνγή ηεο εξγαζίαο ζην Visual Studio 2008. 19

Δικόνα 4.1.1.2 Σο project ηηρ εθαπμογή ηηρ επγαζίαρ ζηο Visual Studio 2008 Σν Visual Studio 2008 γηα ηελ εξγαζία πάξζεθε από ηελ Microsoft ζε δνθηκαζηηθή έθδνζε πιήξσλ δπλαηνηήησλ [20]. 4.1.2 Οι βιβλιοθήκερ και ηα Dependencies ηελ εξγαζία ρξεζηκνπνηήζεθε ε βηβιηνζήθε Microsoft Windows Software Development Kit (SDK) θαη ε DirectShow.NET κέζσ ηεο Visual Basic.NET δειώλνληαο πνιύ απιά έλα reference ζην αξρείν ηεο βηβιηνζήθεο «DirectShowLib-2005.dll» όπσο θαίλεηαη ζηελ παξαθάησ εηθόλα 4.1.2.1 20

Δικόνα 4.1.2.1 Γήλυζη ηηρ βιβλιοθήκηρ DirectShow.NET μέζυ ηηρ VB.NET 2008 Μεηά ηελ παξαπάλσ δήισζε Reference γηα ηελ βηβιηνζήθε DirectShow.NET, ην κόλν πνπ ρξεηάδεηαη ε εθαξκνγή γηα ηελ ρξήζε ηεο είλαη ν εμήο θώδηθαο ζην ζεκείν δήισζεο ησλ Imports: Imports DirectShowLib (εηθόλα 4.1.2.2). Έηζη είλαη όια δεισκέλα θαη έηνηκα πξνο ρξήζε. Γηα παξάδεηγκα ε εληνιή «Public graphbuilder As IGraphBuilder» ζα δήισλε ηελ κεηαβιεηή κε όλνκα graphbuilder σο κηα δηεπαθή ηύπνπ IGraphBuilder, θάηη πνπ ρσξίο ηελ βηβιηνζήθε DirectShow.NET ζα ήηαλ αδύλαην. Η βηβιηνζήθε Microsoft Windows Software Development Kit (SDK) πάξζεθε δσξεάλ από ηελ Microsoft γηα ηνπο ζθνπνύο ηεο εξγαζίαο [6]. Η εγθαηάζηαζε ηεο βηβιηνζήθεο είλαη απιή αθνινπζία βεκάησλ πνπ ζπκπεξηιακβάλνπλ ηελ ηνπνζεζία εγθαηάζηαζήο ηεο, θαη ηελ επηινγή ησλ πεξηερνκέλσλ πξνο εγθαηάζηαζε. 21

Δικόνα 4.1.2.2 Γήλυζη ηος Import ηηρ βιβλιοθήκηρ DirectShow.NET μέζυ ηηρ VB.NET 2008 Γηα ηελ εθηέιεζε ηεο εθαξκνγήο ππάξρνπλ θάπνηα «Dependencies». Απηά είλαη αξρεία βηβιηνζεθώλ (ζπλήζσο.dll θαη.ocx) πνπ πξέπεη λα είλαη πξν-εγθαηεζηεκέλα ζην ιεηηνπξγηθό ζύζηεκα πνπ ζα πξννξηζηεί γηα ηελ εθηέιεζε ηεο εθαξκνγήο ή απιά ζα πξέπεη λα εγθαηαζηαζνύλ καδί κε ηελ εθαξκνγή. Σα Dependencies απηά είλαη ε βηβιηνζήθε DirectShow.NET πνπ απνηειείηαη πνιύ απιά από έλα κόλν αξρείν ην «DirectShowLib-2005.dll» θαη ην.net Framework 3.5 ηεο Microsoft. 22

4.1.3 Σο Filter Graph Η ρξήζε ηνπ DirectShow γίλεηαη ζηελ νπζία κε ηελ δεκηνπξγία ελόο Filter Graph πνπ είλαη κηα δηάηαμε δηαθόξσλ θίιηξσλ ελσκέλσλ κεηαμύ ηνπο. Κάζε θίιηξν αλαιακβάλεη κηα ζπγθεθξηκέλε εξγαζία ζην ζύλνιν ηεο ιήςεο θαη επεμεξγαζία ηεο εηθόλαο ηνπ βίληεν. ηελ παξαθάησ εηθόλα 4.1.3.1 είλαη ηα θίιηξα πνπ ρξεηάζηεθαλ γηα ηελ δεκηνπξγία ηνπ Filter Graph ηεο εθαξκνγήο. Δικόνα 4.1.3.1 Γιάγπαμμα θίληπυν ηηρ επγαζίαρ ηηρ εθαπμογήρ ζε DirectShow Όπσο πξνθύπηνπλ από ην παξαπάλσ δηάγξακκα ρξεζηκνπνίζεθαλ ηα εμήο θίιηξα κε ηελ ζεηξά επεμεξγαζίαο ηνπο: 1) Video Camera Terminal Logitech QuickCam Pro 9000 Απηό ην θίιηξν είλαη ε θύξηα πεγή ιήςεο βίληεν πνπ παξέρεη δύν εμόδνπο (pins), ηελ Capture θαη ηελ Still. Γηα ηελ εθαξκνγή ηεο εξγαζίαο επηιέρηεθε ε Capture. 23

2) SampleGrabber Σν ζπγθεθξηκέλν θίιηξν είλαη ην θύξην εξγαιείν ζύιιεςεο εηθόλσλ από ηελ πεγή βίληεν. Κξαηάεη ζε εηδηθό buffer ηηο εηθόλεο πνπ πεξλάλε από απηό γηα λα ππάξρεη έπεηηα ε δπλαηόηεηα επεμεξγαζίαο ηνπο από ηελ εθαξκνγή. 3) AVI Decompressor Σν θίιηξν απηό απνζπκπηέδεη ηελ ξνή βίληεν από ηελ πεγή θαη πξνζηίζεηαη απηόκαηα από ηνλ Filter Graph Manager. 4) Color Space Converter Η κνλαδηθή ιεηηνπξγία ηνπ θίιηξνπ απηνύ είλαη ε κεηαηξνπή ηνπ ζήκαηνο βίληεν από έλαλ ρξσκαηηθό ηύπν, ζε έλαλ άιινλ. Παξάδεηγκα από 24-bit RGB ζε 8-bit RGB. Σν θίιηξν απηό ζπλνδεύεη πάληα ην θίιηξν απνζπκπίεζεο. 5) Video Renderer Η θύξηα ιεηηνπξγία ηνπ θίιηξνπ απηνύ είλαη ε πξνβνιή / εθηύπσζε ηνπ βίληεν ζηελ εθαξκνγή κέζσ ηεο δηεπαθήο VideoWindow. 4.1.4 Η κενηπική θόπμα Frm_Main Η θόξκα Frm_Main είλαη ε θεληξηθή θαη κνλαδηθή θόξκα ζηελ εθαξκνγή ηεο εξγαζίαο. Πεξηέρεη «επάλσ» ηεο όια ηα ζηνηρεία θαη αληηθείκελα πνπ απαξηίδνπλ ην γξαθηθό πεξηβάιινλ δηεπαθήο ηνπ ρξήζηε (GUI) (εηθόλα 4.1.4.1). Σα αληηθείκελα πνπ πεξηέρεη ε ζπγθεθξηκέλε θόξκα είλαη ηα εμήο: GroupBox Γηα ην πιαίζην ηνπ παξαζύξνπ βίληεν. Panel Γηα ρξήζε σο backbuffer ηνπ βίληεν. PictureBoxes Έλα γηα ην παξάζπξν βίληεν θαη έλα γηα ην animation απηόκαηεο ξύζκηζεο. Labels 24

Έλα γηα ηνλ ηίηιν ηεο κπάξαο Αληρλεπκέλεο Κίλεζεο θαη έλα γηα ηνπο ηίηινπο Αθξίβεηαο / Δπαηζζεζίαο / Υξώκαηνο / Πξνβνιήο Αλίρλεπζεο. NumericUpDown counters Έλα γηα ηελ Αθξίβεηα Αλίρλεπζεο θαη έλα γηα ηελ Δπαηζζεζία. Buttons Έλα γηα ηελ Απηόκαηε Ρύζκηζε θαη έλα γηα ηελ Έλαξμε / Σεξκαηηζκό Αλίρλεπζεο θίλεζεο. ProgressBar Μηα κπάξα πξνόδνπ γηα ην πνζνζηό αληρλεπκέλεο θίλεζεο. ComboBox Μία ιίζηα ηύπνπ ComboBox γηα ηνπο δηαθνξεηηθνύο ηύπνπο πξνβνιήο ηεο αλίρλεπζεο θίλεζεο. Timer Έλαο βξόγρνο ηύπνπ timer πνπ εθηειείηαη θάζε 16msec. ColorDialog Έλαο δηάινγνο ρξώκαηνο γηα ηελ επηινγή ηνπ ρξώκαηνο αλίρλεπζεο. 25

4.1.4.1 Η κενηπική θόπμα Frm_Main ηηρ εθαπμογήρ ζηο Visual Studio 2008 Η βαζηθόο ξόινο ηεο θόξκαο Frm_Main είλαη ε δηεπαθή ηεο εθαξκνγήο κε ηνλ ρξήζηε. Πέξαλ απηνύ όκσο εθηειεί θαη κεξηθέο ζεκαληηθέο ιεηηνπξγίεο ηεο εθαξκνγήο. Σν θπξηόηεξν πνπ είλαη ε αξρηθνπνίεζε ησλ αληηθεηκέλσλ ην εθηειεί ε θόξκα απηή κε ηελ ζπλάξηεζε «Frm_Main_Load». Ο θύξηνο βξόγρνο επίζεο βξίζθεηαη ζηελ Frm_Main θαη εθηειείηαη κε ρξήζε Timer Component θάζε 16msec. Ο θύξην βξόγρνο «Tmr_OnUpdate_Tick» αλαιακβάλεη ηελ ζπγθξάηεζε εηθόλαο από ην δσληαλό βίληεν, ηελ εθηέιεζε ηνπ θώδηθα αλίρλεπζεο θίλεζεο (ζε πεξίπησζε πνπ είλαη ελεξγνπνηεκέλνο από ηνλ ρξήζηε) θαη ηέινο ηελ εθηύπσζε ηεο επεμεξγαζκέλεο εηθόλαο ζην θαηάιιειν PictureBox ηεο θόξκαο. Όινο ν θώδηθαο ηνπ πξνγξάκκαηνο πεξηέρεηαη ζην Παξάξηεκα, αιιά ζα γίλεη εδώ αλαθνξά θαη αλάιπζε ζηα θπξηόηεξα ζηνηρεία θώδηθα ηεο θόξκαο Frm_Main. 26