Title: RGB 2 Greyscale Post by: ~Michelle~ on January 02, 2005, 02:56:07 am Τις τελευταιες μέρες προβληματίζομαι για το ακόλουθο:
Εστω οτι ξέρουμε τις τιμές RGB ενος πίξελ. Εστω r,g,b αυτές. Πως βρίσκουμε την τιμη (έστω g αυτη) που θα εχει αυτό αν η εικόνα στην οποία ανήκει μετατραπει σε greyscale? (εννοείται οτι αν ενα πιξελ ειναι γκρι ειναι της μορφής RGB=(g,g,g)) Μέχρι στιγμής εχω δοκιμάσει τα: g=(r+g+b)/3 g=max(r,g,b) g=min(r,g,b) g=(max(r.g.b)+min(r,g,b))/2 αλλά κανένα δεν έδωσε ικανοποιητικό αποτέλεσμα... Έχετε τπτ άλλο να προτείνετε? Title: Re: RGB 2 Greyscale Post by: fugiFOX on January 02, 2005, 03:48:57 am Τις τελευταιες μέρες προβληματίζομαι για το ακόλουθο: Εστω οτι ξέρουμε τις τιμές RGB ενος πίξελ. Εστω r,g,b αυτές. Πως βρίσκουμε την τιμη (έστω g αυτη) που θα εχει αυτό αν η εικόνα στην οποία ανήκει μετατραπει σε greyscale? (εννοείται οτι αν ενα πιξελ ειναι γκρι ειναι της μορφής RGB=(g,g,g)) Μέχρι στιγμής εχω δοκιμάσει τα: g=(r+g+b)/3 g=max(r,g,b) g=min(r,g,b) g=(max(r.g.b)+min(r,g,b))/2 αλλά κανένα δεν έδωσε ικανοποιητικό αποτέλεσμα... Έχετε τπτ άλλο να προτείνετε? Καλά μην παίρνεις και όρκο ;) Το grayscale δεν είναι μονοχρωματικό. Ίσως έχεις παρατηρήσει τον εκτυπωτή σου, εάν καμιά φορά ξεμείνει από έγρωμη μελάνη, να μην μπορεί να εκτυπώσει γκρίζο! Για την ακριβή τιμή του γκρι που θές, απλά μπες στο φώτοσοπ και αφού επιλέξεις την απόχρωση του γκρι που θες πήγαινε στο RGB και δες τις τιμές των καναλιών Title: Re: RGB 2 Greyscale Post by: kalko on January 02, 2005, 04:40:33 am Αν το έγχρωμο πίξελ είναι (R,G,B) και το ασπρόμαυρο είναι (A,A,A) τότε η λύση που ζητάς θα είναι στην μορφή:
A=aR+bG+cB με a+b+c=1 Παίξε με τους συντελεστές a,b,c για να πετύχεις το αποτέλεσμα που θες. Ένα καλό σετ συντελεστών είναι το εξής: a=0.3 b=0.59 c=0.11 Αυτοί οι συντελεστές χρησιμοποιούνται στην έγχρωμη τηλεόραση για τον ορισμό της φωτεινότητας, ώστε στην περίπτωση που ο δέκτης είναι ασπρόμαυρος να πετυχαίνεται καλή αναπαράσταση των τόνων του γκρι από το έγχρωμο σήμα. Ελπίζω τα παραπάνω να βοηθούν αρκετά. Title: Re: RGB 2 Greyscale Post by: ~Michelle~ on January 02, 2005, 22:15:35 pm Αν το έγχρωμο πίξελ είναι (R,G,B) και το ασπρόμαυρο είναι (A,A,A) τότε η λύση που ζητάς θα είναι στην μορφή: A=aR+bG+cB με a+b+c=1 Παίξε με τους συντελεστές a,b,c για να πετύχεις το αποτέλεσμα που θες. Ένα καλό σετ συντελεστών είναι το εξής: a=0.3 b=0.59 c=0.11 Αυτοί οι συντελεστές χρησιμοποιούνται στην έγχρωμη τηλεόραση για τον ορισμό της φωτεινότητας, ώστε στην περίπτωση που ο δέκτης είναι ασπρόμαυρος να πετυχαίνεται καλή αναπαράσταση των τόνων του γκρι από το έγχρωμο σήμα. Ελπίζω τα παραπάνω να βοηθούν αρκετά. Όντως βοήθησαν πολύ! Μόλις τώρα το δοκίμασα στο MATLAB και το αποτέλεσμα ήταν πάρα πολύ ικανοποιητικό!!! Ευχαριστώ πάρα πολύ!! @fugitive: 1. Δεν έχω Photoshop (αν μπορούσες να μου το γράψεις παρεπιπτόντως θα χαιρόμουν ιδιαιτέρως γτ το ψάχνω :) ) 2. Το συγκεκριμένο με απασχόλησε γτ ήθελα να φτιάξω έναν αλγόριθμο,δλδ ο στόχος μου δεν ήταν να μετατρέψω μια συγκεκριμένη εικόνα μόνο αλλά να καταλάβω πως δουλεύει για να το χρησιμοποιήσω μελλοντικά σε κανα πρόγραμματάκι. Title: Απ: RGB 2 Greyscale Post by: olympia on March 06, 2005, 19:46:34 pm Ξέρω ότι η απάντησή μου έρχεται καθυστερημένα, αλλά μετατρέποντας την εκόνα σε grayscale με την εντολή rgb2gray του matlab και ψάχνοντας το συγκεκριμένο pixel, μπορείς να βρεις τη νέα τιμή.
Απλά μην κάνεις overwhrite τις εικόνες και χάσεις την αρχική έγχρωμη... Take care! :-* Title: Απ: RGB 2 Greyscale Post by: ~Michelle~ on March 07, 2005, 00:18:55 am Ξέρω ότι η απάντησή μου έρχεται καθυστερημένα, αλλά μετατρέποντας την εκόνα σε grayscale με την εντολή rgb2gray του matlab και ψάχνοντας το συγκεκριμένο pixel, μπορείς να βρεις τη νέα τιμή. Απλά μην κάνεις overwhrite τις εικόνες και χάσεις την αρχική έγχρωμη... Take care! :-* Ευχαριστώ για την απάντηση αλλά αυτο που με ενοιαζε ηταν να μαθω τον τρόπο για να το κάνω σε πρόγραμματισμο (πχ Visual Basic). Το MATLAB το χρησιμοποιησα απλα για να ειναι πιο ευκολο το practice ;) |