Newsgroup: it.comp.grafica.photoshop
Titolo: [OT?] da colori a bianco e nero

ciao a tutti
qualcuno sa che procedimento bisogna fare per ottenere un'immagine  in b&w
da una a colori?
non intendo con un qualunque programma di grafica, ma a livello di algoritmo
mi spiego meglio: ho un'immagine bitmap a 24bit ogni pixel ha i suoi valori
rgb. ora in cosa devo convertire questi valori per ottenere il colore-scala
di grigio corrispondente?
mi sembra che per avere un colore in scala di grigio devo avere i valori rgb
perfettamente bilanciati (credo) però come faccio a convertire? faccio la
media dei valori rgb e uso il valore ottenuto per tutti e tre?
spero di essermi spiegato
grazie a tutti
ciao
kk

 media dei valori rgb e uso il valore ottenuto per tutti e tre?
premessa: rispondo per divertimento, probabilmente scrivero' una cialtronata
:)
dunque una immagine a 24 bit ha 8 bit per canale che descrivono R G e B.
Infatti, se visualizzi solo uno dei tre canali, avrai una immagine in scala
di grigio (e non bianco e nero) a 8 bit.
Se tu prendessi una di queste tre "immagini", avresti gia' in parte
risolto... se non fosse che effettivamente il valore colore finale e'
calcolato tra i tre otteti.
Effettivamente, penso che tu debba fare una media dei tre valori per singolo
pixel, e rimapparlo in uno spettro a 8 bit. Le mie conoscenze di matematica
in merito sono perlomeno comparabili alla mia conoscenza della astrofisica,
percio' qua e' meglio che ti arrangi :)))
Voglio comunque immaginare che se ogni singolo bit di un canale descrive uno
dei possibili 256 livelli, basti fare la media dei suoi tre valori rgb per
avere l'equivalente in "pura" scala di grigio.
In ogni caso, sono curioso di conoscere la soluzione finale.
Saludos!
--
           .: CoCo :.
   .: 
www.mechano.it
 :.
.: Illustrator Evangelist :) :.

 > media dei valori rgb e uso il valore ottenuto per tutti e tre?
La soluzione migliore sarebbe passare nello spazio di colore HSV o HSL e
azzerare la Saturazione. In pratica si tratta di una operazione chiamata
"desaturazione" (la trovi anche in PS), e si può ottenere cosi:
max=max(r,g,b);
min=min(r,g,b);
if(max==0)
    risultato_bw=0;
else
    risultato_bw=(max-min)/min;
(AFAIK!)
Ciao,
-Bura-

     risultato_bw=(max-min)/min;
Ok per quello che hai scritto prima, ma sull'algoritmo sei sicuro? COn
questo algoritmo un colore (123,123,123), che è circa un grigio 50%, diventa
0... un po' buietto, no?  ;-)
Ciao
Giacomo

 -Bura-
ho provato il tuo metodo ma non funziona... l'unica modifica che ho
fatto è stata porre min a 1 se uguale a 0 (per prevenire una divisione
per zero) praticamente ho usato risultato_bw come parametro di colore
sia in r che g che b.
se sapessi convertire da rgb a hsb e viceversa prima convertirei in
hsb e poi riconvertirei al contrario usando le h e b ottenute però con
s=0.
grazie
ciao
ps usando la media cmq ottengo già un risultato più che accettabile,
però sono curioso di provare con la desaturazione e confrontare.

quello che non capisco č: a cosa serve tutto questo...????!!!!
esperimenti personali  o cosa??

 esperimenti personali  o cosa??
oramai solo esperimenti personali...
l'dea mi era venuta perchè in un gioco che sto facendo (isometrico
stile simcity 2000 più o meno) mi sembrava carina l'idea che quando
selezioni un edificio in un riquadro in cui ho le specifiche
dell'edificio comparisse l'immagine come sulla mappa, però con il
resto della città in bianco e nero e solo l'edificio in questione a
colori.
cmq con la media sembro ottenere buoni risultati...
però nn mi avete risposto: come converto (se si può) (sempre a livello
di algoritmo) da RGB a HSB?
ciao
kk

 di algoritmo) da RGB a HSB?
il problema è che qua non ci sono molti programmatori.... :-)
ciao.

 ha scritto nel messaggio
news:e6OEa.15344$Fr5.3...@tornado.fastwebnet.it...
