Questa è solo una breve sezione in cui introdurremo un puzzle (rompicapo), che è basato
sul codice per la manipolazione delle immagini che stiamo scrivendo. Allora l'idea è, c'è un'immagine di un certo
oggetto misterioso. E i valori dei canali rosso, verde e blu nell'immagine sono stati
mischiati in qualche modo.E quindi, quello di cui abbiamo bisogno è scrivere il codice che ripristini
i valori del rosso, del verde e del blu e quindi riveli l'immagine originale,e , e ci faccia vedere di che si tratta
Quindi, ecco un esempio quello che farò. Questo è il cosidetto "Gold Puzzle"
E , l'idea, cioè c'è, c'è un qualche oggetto che viene mostrato qui. E quello che succede
è che, prima di tutto, i valori del verde e del blu nell'immagine sono stati semplicemente
impostati su un valore casuale compreso tra 0 e 255. E, in realtà, se lo si guarda.
da un'idea di una specie di neve. E, si può intravedere, c'è
cioè c'è qualche pixel dove il valore del verde è molto alto, qualche pixel dove il valore del blu è molto alto
e quindi il tutto sembra blu o verde con questa specie di pixel violetti sparsi ovunque.
Quinid ci sono dei casi, dobe sia il blu che il verde sono molto alut. E c'è
un livello di confusione nell'immagine. L'altra cosa che succede
è che l'immagine che vogliamo ripristinare, è nei
valori del rosso. In realà, è esclusivamente nei valori del rosso. Il blu e il verde non sono altro che una specie di "spazzatura"
Ma i valori dei rossi sono stati divisi per 10, quindi sembrano molto scuri. Quindi quello che stiamo vedendo qui
è una specie di versione "oscura", è, c', c'è un'immagine in rosso scuro
dietro. E è stata coperta conquesta specie di neve luminosa
blu e verde, in modo che non si possa vederla. Quindi, quello che vogliamo fare è scrivere il codice che ripari quest'immagine.
Quindi consentitemi di inizare da qui. Come al solito, ad iniziare
con un area di testo in bianco per iniziare a scrivere il codice. E qui sotto c'è la soluzione
Il bottone "Show solution", Quindi se vuoi, visita la pagina e prova per conto tuo, puoi, puoi, avere il codice in questo modo.
Bene, quindi la prima cosa che voglio fare, ecco qui, ecco qui come appare se lo eseguo qui:
il ciclo è vuoto, quindi se lo eseguo, ottengo semplicemnte l'immagine grezza del rompicapo
Ok. La prima cose che andrò a fare sarà dire
pixel.setGreen(0)
Andrò ad "abbatere" i pixel verdi. Mi sbarazzerò di lero
e vediamo cosa otteniamo. Hmm, ok, allora, adesso, bè, meglio, adesso semplicemente
abbiamo questa neve blu. Almeno ci siamo liberati della "neve" verde. Ora mi vado a liberare anche della "neve" blu
Quindi scriverò, pixel.dotSetBlue(0), proviamo
Ok, quindi, mi sono liberato della neve. Ma il problema ora è
l'immagine che è tutta in rosso. E' troppo scura e non riusciamo a vederla. Quindi
è tecnicamente lì, ma è invisibile. Quindi ciò di cui ho bisogno è di riscalarla
giusto? E' lì sotto, devo solo renderla più chiara. Quindi scriverò pixel.setRed of
pixel-dot-getRed. Sembra un po come il rompicapo "5, 10, 20"
Quindi, in questo caso, scriverò le istruzioni che lo riscalano
di un fattore 10. Quindi riscala il rosso di un fattore 10.
Huh, ecco qua. Quindi, questa è l'immagine finale.
la foto del "Golde Gate Bridge" visto dalla sponda di San Francisco. Ora
è piccolo, ovviamente e non sembra esatto. Quello che è successo è che siccome
i dati contengono solo i rossi, anche quando ripristiniamo l'immagine, tutto appare in rosso. Voglio dire,
quello che è successo in realtà è che essenzialmente abbiamo un immagine in bianco e nero
che normalmente vengono mostrate in uno spettro di colori dal nero al bianco. In questo caso
l'immagine viene mostrata in uno spettro che va dal nero al rosso. Quindi l'immagine è esatta ma semplicemente
questa è fatta in rosso. Per questa lezione, dovremmo dire che è "buona abbastanza": sai
riesci a vedere quelllo che dovrebbe essere. In una delle lezioni succesive ti mostrerò come
come correggere questa cosa e farlo apparire come una vera immagine in bianco e nero