background image

Σχεδίαση και υλοποίηση κύβων tangible computing 

 

72 

 

 Η  εφαρμογή  της  εύρεσης  έγινε  με  τη  δημιουργία  της  συνάρτησης  getContours  (Εικόνα 

3.20) και ειδικότερα μέσω της συνάρτησης της βιβλιοθήκης OpenCV,  cv2.findContours. Στη 

δεύτερη  ως  παράμετροι  χρησιμοποιήθηκαν  δύο  πολύ  βασικές  με  τη  σειρά  τους  μέθοδοι,  η 

cv2.RETR_EXTERNAL  και  η  cv2.CHAIN_APPROX_NONE.  Με  τη  χρήση  της 

RETR_EXTERNAL από το αγγλικό retrieve external ανακτήθηκε μόνο το ακραίο εξωτερικό 

περίγραμμα  του  σχήματος  της  εικόνας  και  ακολούθως  με  την  CHAIN_APPROX_NONE 

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

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

περιγράμματος,  η  οποία  καθορίστηκε  με  την  επιλογή  της  χρήσης  των  δύο  παραπάνω 

συναρτήσεων για τις ανάγκες της εργασίας. 

 

Εικόνα 3.20: Απόσπασμα του κώδικα της συνάρτησης getContours 

 

Επίσης χρησιμοποιήθηκε η συνάρτηση cv2.drawContours της OpenCV η οποία τονίζει και 

κατά  κάποιο  τρόπο  «ζωγραφίζει»  το  ευρεθέν  περίγραμμα  του  σχήματος.  Αυτό  έγινε 

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

σύστημα αντιλήφθηκε και βρήκε το περίγραμμα του σχήματος που εισήχθη.  

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

περιγράμματα που δεν χρειάζονταν πέρα του σχήματος που τοποθετήθηκε στην κάμερα  λόγω 

θορύβου της εικόνας και ανωμαλιών του άσπρου φόντου εναπόθεσης του σχήματος. Για την 

αποφυγή  του  θορύβου  και  την  ακόμη  πιο  ακριβή  εύρεση  ενός  περιγράμματος 

χρησιμοποιήθηκε  η  συνάρτηση  cv2.contourArea  της  OpenCV,  με  την  οποία  καθορίστηκε 

μέσω  συγκεκριμένης  κλίμακας  μία  περιοχή  μόνο  μέσα  στην  οποία  θα  επιτρεπόταν  να