Προς το περιεχόμενο

Προβλημα σε Image processing


insomniaK

Προτεινόμενες αναρτήσεις

Δημοσ.

Αγαπητοί έχω ένα πρόβλημα αρκετό καιρό που ίσως είναι και signal processing, αλλά δεν μπορώ να βρω έναν αλγόριθμο που να μου το λύνει. Στην εικονα που ακολουθεί μπορείτε να δείτε το αποτέλεσμα από την ανάλυση σήματος radar σε κινούμενη επιφάνεια υγρου.

 

nrcsvel6122008135231.jpg

 

Μπορείτε να παρατηρήσετε τις διαγώνιες γραμμές, οι οποίες αντιστοιχούν σε phase velocity των κυμάτων (σας είναι αδιάφορο αυτό).

 

Το πρόβλημα είναι πως με κάποιο τρόπο θέλω να βρίσκω την κλίση της κάθε μίας γραμμής ανά μερικά pixel, ανεξάρτητα από την intensity του κάθε pixel (μου είναι αδιάφορο). Ουσιαστικά, μπορούμε να θεωρούμε πως η εικόνα είναι binary, 1 όπου έχει χρώμα, 0 όπου είναι λευκή.

 

Εχω δοκιμάσει tensors analysis, όπως περιγράφεται στο κεφ 13 του Jaehne, αλλά δε δουλεύει. Έχετε εφαρμόσει ή ξέρετε ή έχετε αναπτύξει κάποιον αλγόριθμο για παρόμοιο πρόβλημα;

 

Όλες οι απαντήσεις καλοδεχούμενες.

Δημοσ.

Μπορείς να ανεβάσεις μια απλοποιημένη φώτο (με black & white) που λες να κάνουμε μερικές δοκιμές;

 

---------- Το μήνυμα προστέθηκε στις 13:48 ----------

 

Αν και είμαι σχεδόν άσχετος με signal processing, θα ήθελα να κάνω κάποια test. Σκέφτομαι πως αν μπορούσα να βρω περίπου ποια pixel απαρτίζουν μια γραμμή, θα μπορούσα να βρω με την μεθοδο των ελαχίστων τετραγώνων μια γραμμή που περνάει μέσα από αυτά και στην συνέχεια να βρω την κλιση της. Τι λες;

Δημοσ.
Αγαπητοί έχω ένα πρόβλημα αρκετό καιρό που ίσως είναι και signal processing, αλλά δεν μπορώ να βρω έναν αλγόριθμο που να μου το λύνει. Στην εικονα που ακολουθεί μπορείτε να δείτε το αποτέλεσμα από την ανάλυση σήματος radar σε κινούμενη επιφάνεια υγρου.

 

nrcsvel6122008135231.jpg

 

Μπορείτε να παρατηρήσετε τις διαγώνιες γραμμές, οι οποίες αντιστοιχούν σε phase velocity των κυμάτων (σας είναι αδιάφορο αυτό).

 

Το πρόβλημα είναι πως με κάποιο τρόπο θέλω να βρίσκω την κλίση της κάθε μίας γραμμής ανά μερικά pixel, ανεξάρτητα από την intensity του κάθε pixel (μου είναι αδιάφορο). Ουσιαστικά, μπορούμε να θεωρούμε πως η εικόνα είναι binary, 1 όπου έχει χρώμα, 0 όπου είναι λευκή.

 

Εχω δοκιμάσει tensors analysis, όπως περιγράφεται στο κεφ 13 του Jaehne, αλλά δε δουλεύει. Έχετε εφαρμόσει ή ξέρετε ή έχετε αναπτύξει κάποιον αλγόριθμο για παρόμοιο πρόβλημα;

 

Όλες οι απαντήσεις καλοδεχούμενες.

 

Στην αρχή Laplace για edge detection, μετά Hough για εύρεση γραμμών.

 

http://en.wikipedia.org/wiki/Edge_detection

http://en.wikipedia.org/wiki/Hough_transform

 

Ναι πρώτα το κανεις grayscale η καλύτερα binary.

Δημοσ.

@ kagelos εδώ ένα παράδειγμα σε .mat.

 

@ m1cro, έχω δοκιμάσει Hough και edge το έχω δοκιμάσει αλλά δε βοηθάει, διότι α. όταν είναι ανοιχτό το όριο ουσιαστικά παρα είναι πολλές οι γραμμές και μάλιστα τεμνόμενες και β. όταν είναι κλειστό λόγω της μορφής των δεδομένων ομαδοποιεί δεδομένα που ανήκουν σε διαφορετική γραμμή.

Δεν ξέρω σε τι πλατφόρμα εργάζεσαι, αλλά δοκιμάζω σε matlab, αυτό που πρότεινες είναι και στο help της και παραλλάσσοντας το παράδειγμα της ουσιαστικά μου ένωσε τα κενά που υπάρχουν στις γραμμές κι όχι τις γραμμές. Ίσως κάνω κάτι λάθος όμως.

 

Ευχαριστώ και τους δύο σας κι οποιοδήποτε σχόλιο, παρατήρηση, κλπ καλοδεχούμενα.

Δημοσ.

Sorry αλλά δεν δουλεύω matlab. Θα μπορούσες μήπως να ανεβάσεις μια μορφή εικόνας; Αλλιώς να δοκιμάσω αυτή που έβαλες πιο πάνω, αν και είναι λίγο μικρή η ανάλυση.

Δημοσ.

Στο image processing toolbox του simulink υπάρχει αυτό που θες να κάνεις. Στο λέω (αν και δεν είναι το αντικείμενο μου το image processing) γιατί το χρησιμοποιήσαμε σε ένα πείραμα με robots που κάναμε πρόσφατα και είχαμε σχεδόν το ίδιο πρόβλημα και θέλαμε γρήγορη λύση. :-)

Δημοσ.

Εχεις σκεφτει να επινοησεις καποιο δικο σου αλγόριθμο;

Mπορει να μην ειναι επιστημονικος και να υπαρχει ηδη κατι αλλα καμια φορα δεν υπαρχουν ολα 100%ετιμα.

Εγω πχ θα εκανα σταδιακο rotation της εικονας και εβλεπα στατιστικα για τα χρωματα των pixel καθετα.Οταν εβλεπα πως υπαρχει η μεγαλύτερη ομοιοτητα χρωμάτων πχ περισσότερο ασπρο και σχεδον καθολου μπλε κτλ τοτε θα σημαινε πως θα ειχε ερθει καθετα.Αρα η περιστροφη της εικονας θα ειναι και η κλιση...

Δημοσ.

Εγω πχ θα εκανα σταδιακο rotation της εικονας και εβλεπα στατιστικα για τα χρωματα των pixel καθετα.Οταν εβλεπα πως υπαρχει η μεγαλύτερη ομοιοτητα χρωμάτων πχ περισσότερο ασπρο και σχεδον καθολου μπλε κτλ τοτε θα σημαινε πως θα ειχε ερθει καθετα.Αρα η περιστροφη της εικονας θα ειναι και η κλιση...

 

insomniak ψάχνεις την κλίση της κάθε γραμμής ή την "μέση" κλίση (αν είναι δυνατόν να υφίσταται τέτοιο πράγμα) ολόκληρης της εικόνας;

Δημοσ.

Το ιδανικό αποτέλεσμα είναι η κλίση ανά κάποια pixels σε κάθε γραμμή. Στη συνέχεια βολεύομαι και με την κλίση της κάθε γραμμής και στο τέλος με ότι να είναι.

 

@ kagkelos, έλα να γουστάρεις.

 

testcc.th.jpg

 

@ ΠάρηςΓ, θα το προσπαθήσω, αυτό που προτείνεις. Το θέμα είναι πως με αυτόν τον τρόπο μπορώ να βρω μία μέση κλίση για όλες τις γραμμές, αλλιώς πρέπει να μπω σε loop και κάθε φορά που βρίσκω τιμή διάφορη της προηγούμενης να ξαναυπολογίζω την κρίση. Θα το δοκιμάσω και θα σου πω.

 

@ Dr.Fuzzy, δεν έχω image processing toolbox στο simulink, αλλά το κοίταξα στο documentation και δε βρήκα κάτι, είσαι σίγουρος πως ήταν simulink;

Δημοσ.

Βασικα στην εικονα η κλιση ειναι ιδια οι γραμμες φαινονται παραλληλες.. Πρεπει να ειναι πολυ μεγάλη η εικονα σου σε αναλυση για να πεις οτι θα φανει η διαφορα.. Και δεν ειναι οι γραμμες τοσο ευθείες..

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

 

---------- Το μήνυμα προστέθηκε στις 12:36 ----------

 

Το ιδανικό αποτέλεσμα είναι η κλίση ανά κάποια pixels σε κάθε γραμμή. Στη συνέχεια βολεύομαι και με την κλίση της κάθε γραμμής και στο τέλος με ότι να είναι.

 

 

Εσυ θα οριζεις τα ανα ποσα pixel ;Δηλαδη θες το μεσο ορο κλισεων για καποια pixel ?

Δημοσ.
Το ιδανικό αποτέλεσμα είναι η κλίση ανά κάποια pixels σε κάθε γραμμή. Στη συνέχεια βολεύομαι και με την κλίση της κάθε γραμμής και στο τέλος με ότι να είναι.

 

@ kagkelos, έλα να γουστάρεις.

 

testcc.th.jpg

 

@ ΠάρηςΓ, θα το προσπαθήσω, αυτό που προτείνεις. Το θέμα είναι πως με αυτόν τον τρόπο μπορώ να βρω μία μέση κλίση για όλες τις γραμμές, αλλιώς πρέπει να μπω σε loop και κάθε φορά που βρίσκω τιμή διάφορη της προηγούμενης να ξαναυπολογίζω την κρίση. Θα το δοκιμάσω και θα σου πω.

 

@ Dr.Fuzzy, δεν έχω image processing toolbox στο simulink, αλλά το κοίταξα στο documentation και δε βρήκα κάτι, είσαι σίγουρος πως ήταν simulink;

 

Λάθος μου, είναι image processing toolbox στο MATLAB. Πας στο help->image processing toolbox->examples->Creating an Angle Measurement tool.

Αν δεν έχεις το toolbox μπορείς να το προσθέσεις στο add/remove του installation.:-)

Αρχειοθετημένο

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

  • Δημιουργία νέου...