Ημερομηνία Πέμ Μάιος 09, 2024 11:29 pm

2011-12 / ΓΕ3

Προβολή ενεργών θεμάτων

Όλοι οι χρόνοι είναι UTC + 2 ώρες


Κλειδωμένη Δ. Συζήτηση Αυτό το θέμα είναι κλειδωμένο, δεν μπορείτε να επεξεργαστείτε δημοσιεύσεις ή να δημοσιεύσετε άλλες απαντήσεις  [ 47 δημοσιεύσεις ]  Μετάβαση στην σελίδα Προηγούμενη  1, 2, 3, 4, 5  Επόμενο
Συγγραφέας Μήνυμα
 ΔημοσίευσηΔημοσιεύτηκε: Παρ Ιαν 20, 2012 10:03 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
Έχω μια ερωτησούλα, η οποία δεν ξέρω αν μπορεί να απαντηθεί βέβαια, γιατί μάλλον είναι θέμα υλοποίησης του καθενός. Τέλοσπαντων, το πρόβλημα που έχω είναι στο να βρω ένα τρόπο να υπολογίζω την απόσταση ανάμεσα στα δύο αντικείμενα (εικόνα και μεγενθυντικό φακό). Οι μέθοδοι του TUIO getX() και getY(), απ' ό,τι διαπίστωσα, δε δουλεύουν για δύο αντικείμενα. Προσπαθώ να φτιάξω μια μέθοδο που να παίρνει δύο ορίσματα (δύο αντικείμενα συγκεκριμένα) και να υπολογίζει τη μεταξύ τους απόσταση. Χρησιμοποιώ τα getX και getY από δύο φορές (μία για το κάθε αντικείμενο) και τελικά αυτά που υπολογίζει ως συντεταγμένες, ανεξάρτητα από το πώς θα τα δηλώσω, αναφέρονται στο ίδιο αντικείμενο κάθε φορά, αλλά σε άλλο σημείο του. Καμιά ιδέα; (Αν βέβαια τα εξήγησα σωστά και μπορέσατε να καταλάβετε τι εννοώ... :oops: )


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 9:17 am   
Άβαταρ μέλους

Εγγραφη: Κυρ Ιούλ 05, 2009 2:44 pm
Δημοσ.: 920
Τοποθεσια: ΚΑΒΑΛΑ
Βάσω υπάρχουν και άλλοι τρόποι με τους οποίους θα μπορούσες να βρεις την απόσταση δύο αντικειμένων – στην συγκεκριμένη βιβλιοθήκη – και αυτός που επιλέγεις δεν είναι ο πιο εύκολος αλλά δεν θα τον χαρακτήρισα και δύσκολο.

Από τις μεθόδους getX και getY ενός αντικειμένου παίρνεις τις συντεταγμένες του. Σωστά;
Αν λοιπόν καλέσεις τις ίδιες μεθόδους για κάποιο άλλο, δεύτερο, αντικείμενο, παίρνεις και τις συντεταγμένες του άλλου αντικειμένου. Επειδή όλα γίνονται σ’ ένα επίπεδο, απλά υπολογίζεις την (Ευκλείδεια) απόστασή τους. Αν θυμάμαι καλά d=sqrt((x1-x2)^2 + (y1-y2)^2).

Για να το κάνω ακόμη πιο απλό, αν a και b τα δύο αντικείμενα (TUIO), τότε d=sqrt((a.getX()-b.getX())^2 + (a.getY()-b.getY())^2).

Simple as that. Δεν καταλαβαίνω που μπορεί να μπλέχτηκες. Και φυσικά δεν νομίζω ότι χρειάζεται να κάνεις κάποια μέθοδο ή κάποια συνάρτηση για μία γραμμή κώδικα. Αν και πάλι, αυτό το τελευταίο, είναι θέμα υλοποίησης.


Κορυφή
 Προφίλ WWW  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 9:52 am   

Εγγραφη: Δευτ Οκτ 18, 2010 10:40 pm
Δημοσ.: 266
Τοποθεσια: ΗΡΑΚΛΕΙΟ
Στο 2γ ζητά ψευδοκώδικα της εφαρμογής με αναφορά σε δομές δεδομένων (όπως είχε πει ο ΣΕΠ στην ΟΣΣ).

Σε ποιο επίπεδο σκέφτεστε να περιγράψετε στο 2γ τον ψευδοκώδικα της προτεινόμενης εφαρμογής;

Α) Περιγραφή λειτουργιών - κλήση μεθόδων (π.χ. Υπολόγισε Περιοχές )
ή
Β) Αναλυτικά με χρήση εντολών (π.χ. Για ι 1 έως 10 ... Τέλος_Επανάληψης)


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 10:02 am   
Άβαταρ μέλους

Εγγραφη: Κυρ Ιούλ 05, 2009 2:44 pm
Δημοσ.: 920
Τοποθεσια: ΚΑΒΑΛΑ
galatisp έγραψε:
Στο 2γ ζητά ψευδοκώδικα της εφαρμογής με αναφορά σε δομές δεδομένων (όπως είχε πει ο ΣΕΠ στην ΟΣΣ).
...

Παναγιώτη προφανώς αναφέρεσαι στο 1Γ και όχι στο 2Γ. Σωστά;

Εάν ναι, εγώ προσωπικά δεν έδωσα ιδιαίτερη βαρύτητα στο 1Γ και έδωσα μόνο ένα διάγραμμα ροής (flow chart) – τίποτε περισσότερο. Προτίμησα να ασχοληθώ περισσότερο με το 2Γ, δεδομένου ότι δίνει τις ίδιες μονάδες και ήταν περισσότερο του χεριού μου, αλλά λαμβάνοντας υπόψη ότι και όλα τέλεια να είναι ο βαθμός θα είναι 10 και όχι 11.


Κορυφή
 Προφίλ WWW  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 1:04 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
andreas έγραψε:
Για να το κάνω ακόμη πιο απλό, αν a και b τα δύο αντικείμενα (TUIO), τότε d=sqrt((a.getX()-b.getX())^2 + (a.getY()-b.getY())^2).

Simple as that. Δεν καταλαβαίνω που μπορεί να μπλέχτηκες. Και φυσικά δεν νομίζω ότι χρειάζεται να κάνεις κάποια μέθοδο ή κάποια συνάρτηση για μία γραμμή κώδικα. Αν και πάλι, αυτό το τελευταίο, είναι θέμα υλοποίησης.

Ούτε εγώ καταλαβαίνω γιατί τόσα προβλήματα. Η πρώτη μου σκέψη είναι αυτή ακριβώς που περιγράφεις (μια γραμμή κώδικα μέσα σε μια άλλη μέθοδο), αλλά όταν είδα ότι έδινε αψυχολόγητα αποτελέσματα, έκανα ενός είδους "debugging", σπάζοντάς τα σε μεθόδους, για να δω που γίνεται το λάθος. Ε, σ' αυτό με τα getX(), getY() γινόταν αυτό που περιέγραψα παραπάνω. Όπως και να το διατύπωσα, μέσα στην ίδια μέθοδο έδινα αλλοπρόσαλες συντεταγμένες (τουλάχιστον για το δεύτερο αντικείμενο). Τελικά το έλυσα βέβαια, με κάπως άκομψο τρόπο, αλλά δεν άντεχα άλλο. Μου κάνει εντύπωση πάντως που σε σένα (και ενδεχομένως και σε άλλους), δούλεψε με αυτό τον τρόπο.

Σημείωση: Αυτό που παρατήρησα είναι ότι τα getX(), getY() δεν επιστρέφουν τις συντεταγμένες σε μονάδες pixel, όπως έχουμε συνηθίσει μέχρι τώρα στο Processing, το οποίο ήταν κι αυτό ένα πρόβλημα στην υλοποίηση της ιδέας μου...


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 1:18 pm   
Άβαταρ μέλους

Εγγραφη: Κυρ Ιούλ 05, 2009 2:44 pm
Δημοσ.: 920
Τοποθεσια: ΚΑΒΑΛΑ
Wazka έγραψε:
...
Μου κάνει εντύπωση πάντως που σε σένα (και ενδεχομένως και σε άλλους), δούλεψε με αυτό τον τρόπο.

Σημείωση: Αυτό που παρατήρησα είναι ότι τα getX(), getY() δεν επιστρέφουν τις συντεταγμένες σε μονάδες pixel, όπως έχουμε συνηθίσει μέχρι τώρα στο Processing, το οποίο ήταν κι αυτό ένα πρόβλημα στην υλοποίηση της ιδέας μου...

Κατ’ αρχήν εγώ δεν το υλοποίησα με τον τρόπο που περιέγραψα παραπάνω.

Σε κάθε περίπτωση όμως, αν δεις το documentation του TUIO library, θα διαπιστώσεις ότι οι getX & getY επιστρέφουν έναν αριθμό α, τέτοιον ώστε 0<α<1. 0 σημαίνει τέρμα αριστερά ή πάνω, και 1 σημαίνει τέρμα δεξιά ή κάτω – αν τα θυμάμαι καλά γιατί πάνε πολλές μέρες από τότε. Και αυτό είναι λογικό, διότι η κάμερα έχει ένα οπτικό πεδίο a*b pixel, ενώ το παράθυρό σου έχει μία ανάλυση c*d pixel, η οποία από υλοποίηση σε υλοποίηση, αν μην πω από εκτέλεση σε εκτέλεση, αλλάζει. Επίσης αν θυμάμαι καλά, υπάρχουν κάποιες screenX και screenY που κάνουν αυτόματα την μετατροπή σε pixel – αν δεν θέλεις να μπλέξεις με τις getX και getY. Γενικώς πάντως υπάρχουν πάρα πολλές (βοηθητικές) μέθοδοι, τόσες που δυσκολεύεσαι να διαλέξεις τι θα σ’ εξυπηρετήσει καλύτερα. Υποψιάζομαι όμως ότι δεν μπήκες στον κόπο να δεις το documentation καθόλου. Αν εξακολουθείς να έχεις προβλήματα μη ψάχνεις στα τυφλά – ρίξε μια ματιά και κάτι θα σου κάνει κλικ.


Κορυφή
 Προφίλ WWW  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 1:28 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
Έψαξα για documentation και το μόνο που βρήκα ήταν αυτό: http://www.tuio.org/api/cpp/main.html, στο οποίο όμως δε βρήκα αυτό που λες για τις τιμές της getX() και getY(). Τελικά ναι, χρησιμοποίησα τις getScreenX(), getScreenY(), γιατί ήταν ο μόνος τρόπος να γίνει αυτό που είχα στο μυαλό μου. Επίσης, υπάρχει η getDistance, αλλά και πάλι, βάσει αυτών που εξήγησα προηγουμένως (ότι τα getX(), getY() είχαν πρόβλημα για 2 αντικείμενα), πάλι δεν είχα καλά αποτελέσματα. Τέλοσπαντων, δεν έχω πετύχει το τέλειο (προφανώς), αλλά δε σκοπεύω να ασχοληθώ άλλο. Θέλω να κάτσω να γράψω και λίγο τα θεωρητικά τώρα, γιατί έχουν κι αυτά λίγο ψάξιμο και μια κάποια δυσκολία, όπως φάνηκε από τις απορίες στην ΟΣΣ.


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 1:30 pm   

Εγγραφη: Κυρ Νοέμ 21, 2010 5:02 pm
Δημοσ.: 77
Τοποθεσια: Αθήνα
Wazka έγραψε:
Περίπου. Το φίλτρο επεξεργασίας πρέπει να αντιστοιχεί κι αυτό σε κάποιο fiducial, το οποίο όταν εμφανίζεται στην κάμερα, να το αναγνωρίζει το πρόγραμμα και να εφαρμόζει το φίλτρο στην εικόνα.



Wazka έγραψε:
Έχω μια ερωτησούλα, η οποία δεν ξέρω αν μπορεί να απαντηθεί βέβαια, γιατί μάλλον είναι θέμα υλοποίησης του καθενός. Τέλοσπαντων, το πρόβλημα που έχω είναι στο να βρω ένα τρόπο να υπολογίζω την απόσταση ανάμεσα στα δύο αντικείμενα (εικόνα και μεγενθυντικό φακό). Οι μέθοδοι του TUIO getX() και getY(), απ' ό,τι διαπίστωσα, δε δουλεύουν για δύο αντικείμενα. Προσπαθώ να φτιάξω μια μέθοδο που να παίρνει δύο ορίσματα (δύο αντικείμενα συγκεκριμένα) και να υπολογίζει τη μεταξύ τους απόσταση. Χρησιμοποιώ τα getX και getY από δύο φορές (μία για το κάθε αντικείμενο) και τελικά αυτά που υπολογίζει ως συντεταγμένες, ανεξάρτητα από το πώς θα τα δηλώσω, αναφέρονται στο ίδιο αντικείμενο κάθε φορά, αλλά σε άλλο σημείο του. Καμιά ιδέα; (Αν βέβαια τα εξήγησα σωστά και μπορέσατε να καταλάβετε τι εννοώ... :oops: )



Ευχαριστω,βρισκομαι σε καλο δρομο πλεον. Δεν καταλαβαινω ομως γιατι μας χρειαζεται η αποσταση αναμεσα σε 2 αντικειμενα για την οποια ρωτας...

Επισης, οταν η εκφωνηση λεει "Το παραδοτέο θα πρέπει να περιέχει ενδεικτικές οθόνες όπου θα φαίνεται η αναγνώριση τουλάχιστον δύο κωδικών ταυτόχρονα σε δύο τουλάχιστον καταστάσεις της εφαρμογής.", τι εννοει με το bold κομματι? π.χ.

κατασταση 1 ) Εικονα+ φιλτρο μεγεθυνησης
κατασταση 2) Εικονα + Φιλτρο αλλαγης φωτεινοτητας

?

Ευχαριστω και παλι και σορρυ για τις πολλες ερωτησεις, αλλα αν και ημουνα στην ΟΣΣ , δεν ειχα κανει προεργασια στα fiducials οποτε δεν καταλαβα τιποτα απο οσα ισως εξηγηθηκαν εκει~


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 1:49 pm   

Εγγραφη: Παρ Οκτ 15, 2010 8:44 pm
Δημοσ.: 248
Τοποθεσια: Πάτρα
Εγώ έφτιαξα ένα φίλτρο μόνο (κι αυτό με δυσκολία :oops: ), οπότε αυτό που σκοπεύω να στείλω είναι η αναγνώριση δύο εικόνων απλά και η αναγνώριση μιας εικόνας και του φίλτρου μεγέθυνσης, ίσως τη μία μεγεθύνοντας την εικόνα (γιατί είναι αρκετά κοντά) και την άλλη όχι (γιατί αντίστοιχα δεν είναι αρκετά κοντά).


Κορυφή
 Προφίλ  
 ΔημοσίευσηΔημοσιεύτηκε: Σάβ Ιαν 21, 2012 5:53 pm   

Εγγραφη: Σάβ Οκτ 09, 2010 5:16 pm
Δημοσ.: 318
Τοποθεσια: Αθήνα
Βάσω κοίτα αυτό. Ακόμα πιο απλό από αυτό που λέει ο Ανδρέας. Χρησιμοποιείς τις συντεταγμένες που σου δίνει το TUIO Object από τα getScreenX(width) και getScreenY(height) και 0 στην τρίτη διάσταση και έχεις αμέσως την απόσταση δύο σημείων σε 2D χώρο ;)

Παναγιώτη την απόσταση θέλουμε να την υπολογίσουμε, γιατί υποτίθεται ότι τα action fiducials θα πρέπει να εφαρμόζονται στα object fiducials που βρίσκονται κοντά τους. Επίσης οι δύο καταστάσεις που λέει, υποθέτω ότι εννοεί ότι πρέπει να δείξουμε screenshot πριν την εφαρμογή του action fiducial και μετά (πριν και μετά την μεγέθυνση δηλαδή).

Εγώ έφτιαξα έως τώρα 6 φίλτρα. Από την στιγμή που έφτιαξα το ένα και άρα και την δομή του προγράμματος μου, το να προσθέσω και άλλα ήταν αρκετά εύκολο και το έκανα καθαρά για εμένα. :)

Τέλος, εγώ σκέφτομαι να μην απαντήσω καθόλου το 1Β. Έχω δοκιμάσει την κάμερα μου σε 4 διαφορετικά συστήματα και με χρήση της JMyron τρώω μπλε οθόνη λόγω drivers της κάμερας. 10 μονάδες για την ψυχική μου υγεία μπορώ να τις θυσιάσω :P
Βέβαια ίσως την κάνω με OpenCV, αλλά τέτοια ερωτήματα δεν μου προκαλούν καθόλου ενδιαφέρον.

_________________
Εικόνα


Κορυφή
 Προφίλ  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση κατά  
Κλειδωμένη Δ. Συζήτηση Αυτό το θέμα είναι κλειδωμένο, δεν μπορείτε να επεξεργαστείτε δημοσιεύσεις ή να δημοσιεύσετε άλλες απαντήσεις  [ 47 δημοσιεύσεις ]  Μετάβαση στην σελίδα Προηγούμενη  1, 2, 3, 4, 5  Επόμενο

Όλοι οι χρόνοι είναι UTC + 2 ώρες


Μελη σε συνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group •
Μετάφραση Jorfan και phpBB2.gr
Style originally created by Volize © 2003 • Redesigned SkyLine by MartectX © 2008 - 2009