69
Βιβλιοθήκη
HighGUI
Η βιβλιοθήκη HighGUI (High – level graphical user interface) περιέχει τις
συναρτήσεις της OpenCV που επιτρέπουν την επικοινωνία του χρήστη με τον
υπολογιστή
και
τις
περιφερειακές
συσκευές.
Στην
OpenCV
η
βιβλιοθήκη
HighGUI
χωρίζεται
σε
τρεις
δομές.
Η
πρώτη
είναι
κυρίως
για
τις
συσκευές
και
συγκεκριμένα
τις
κάμερες
και
την
αλληλεπίδραση
με
αυτές.
Η
δεύτερη
έχει
να
κάνει
με
το
σύστημα
αρχείων
για
ανάκτηση
και
αποθήκευση
εικόνων.
Η
Τρίτη
και
τελευταία
αφορά
το
σύστημα
παραθύρων
(window
system).
Η
δομή
αυτή
περιέχει
τις
συναρτήσεις
για
άνοιγμα
παραθύρων
και
εγγραφή
δεδομένων
σε
αυτά.
Κατά την υλοποίηση του κώδικα της εφαρμογής μας χρησιμοποιήσαμε
ευρέως
συναρτήσεις
και
από
τις
τρεις
δομές
της
βιβλιοθήκης
της
OpenCV
HighGUI.
Παραθέτουμε
συνοπτικά
κάποιες
από
αυτές
τις
συναρτήσεις
και
τη
χρήση
τους.
Το
cvCapture
που
αναλύσαμε
πιο
πάνω
είναι
μία
από
τις
συναρτήσεις
της
βιβλιοθήκης
HighGUI.
Δημιουργούμε
παράθυρο
με
το
όνομα
image
και
με
το
όρισμα
CV_WINDOW_AUTOSIZE
αλλάζει
το
μέγεθος
του
παραθύρου
για
να
χωράει
η
εικόνα.
Το
όρισμα
c_str(
)
μετατρέπει
ένα
string
σε
char.
cvNamedWindow(image.c_str( ),CV_WINDOW_AUTOSIZE);
Όταν
τελειώσουμε
την
ανίχνευση
αντικειμένων
καταστρέφουμε
το
παράθυρο
που
ανοίξαμε,
με
τη
συνάρτηση:
cvDestroyWindow(image,c_str( ) );
Για
να
φορτώσουμε
την
εικόνα
από
το
βίντεο
στο
παράθυρο
που
δημιουργήσαμε
χρησιμοποιούμε
τη
συνάρτηση:
cvShowImage(imagename.c_str( ), image);
Το
πρώτο
όρισμα
καθορίζει
ποια
εικόνα
θα
βάλουμε
στο
παράθυρο
και
το
δεύτερο
στο
δεύτερο
όρισμα
βάζουμε
το
όνομα
του
παραθύρου
που
θέλουμε
να
μπει
η
εικόνα.
Όταν
σταματήσουμε
να
χρειαζόμαστε
την
εικόνα
χρησιμοποιούμε
τη
συνάρτηση:
cvReleaseImage(&img);
Με
τον
τρόπο
αυτό
ελευθερώνουμε
τη
μνήμη
που
έχει
εκχωρηθεί.
Μέσα
στη
συνάρτηση
πρέπει
να
βάλουμε
ως
όρισμα
ένα
δείκτη
στο
IplImage
έτσι
ώστε
μετά
την
κλήση
της
ο
δείκτης
αυτός
θα
πάρει
την
τιμή
NULL.