|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Padova
Messaggi: 2209
|
[JAVA & non] Manipolazione Pixel
Salve!
Per l'esame di Elaborazione delle Immagini devo realizzare un programmino che applichi qualche filtro Il mio problema riguarda la luminosità, che aumenta si >1 e diminuisce se <1: se sommo arbitrariamente una costante K per es. ad un pixel RGB 255 255 3, risulterebbe 255 255 3+K. Il fatto è che non è più luminosa, ma solo più blu!!! Mi serve un algoritmo che aumenti la luminosità in base al peso dei canali del pixel e non arbitrariamente, per preservare i colori. Me ne serve uno anche per il contrasto Grazie!
__________________
Fisso: Case Corsair Carbide 275Q PSU Seasonic Focus GX-850 MB Asus TUF GAMING X570-PLUS CPU AMD Ryzen 3900x Cooler Arctic Freezer Xtreme RAM 2*16GB G.Skill RipJaws V DDR4 3200MHz VGA EVGA GeForce RTX 2060 Super 8GB Monitor Asus VX239H SSD 2*ADATA XPG SX8200 PRO 1TB Raid0 Router Netgear DGND4000 SO Windows 10 Print&Scan Epson WF-4830 / Laptop: Lenovo L14 Gen 3 / Mobile: Pixel 7a |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
1) Converti il pixel dallo spazio RGB a HSV;
2) cambiagli luminosità e contrasto (con questo spazio colore è facile farlo); 3) riconvertilo in RBG.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Padova
Messaggi: 2209
|
Grazie per la dritta ma devo fare il filtro sui pixel RGB, vi ricordo che è per un esame altrimenti avrei potuto usare anche il metodo nativo dell'API di Java
Altre idee o semplicemente link da segnalarmi?
__________________
Fisso: Case Corsair Carbide 275Q PSU Seasonic Focus GX-850 MB Asus TUF GAMING X570-PLUS CPU AMD Ryzen 3900x Cooler Arctic Freezer Xtreme RAM 2*16GB G.Skill RipJaws V DDR4 3200MHz VGA EVGA GeForce RTX 2060 Super 8GB Monitor Asus VX239H SSD 2*ADATA XPG SX8200 PRO 1TB Raid0 Router Netgear DGND4000 SO Windows 10 Print&Scan Epson WF-4830 / Laptop: Lenovo L14 Gen 3 / Mobile: Pixel 7a |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 356
|
Puoi usare GIMP unitamente a gluas, un'interfaccia di scripting per GIMP basata su Lua.
Io tra l'altro sto facendo qualcosa del genere, mantenendo la compatibilità con le funzioni e le variabili di gluas, per un software di painting e animazione, Project Dogwaffle. Praticamente si tratta di un plugin che implementa la possibilità di creare e testare script al volo: DogLua GIMP + gluas mi sembra la soluzione ideale per la tua problematica. Sul sito di gluas dai un'occhiata alla carrellata di esempi; c'è anche un ottimo tutorial sulla teoria dell'elaborazione delle immagini. Bye! |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
essendo il limite di 255 oltre nn puoi andare, quindi i colori tendono ad andare in saturazione..... inoltre nn è affatto vero ke il punto diventerà più blu....... invece tenderà di più al bianco passando dal giallo acceso a una specie di celestino (penso) x poi diventare bianco qdo raggiungerai il limite di 255 x il blu........ questo avviene perkè i colori RGB dei fosfori del monitor sfruttano una sintesi additiva....praticamente le componenti dei colori ivengono sommate e quanto è + alto il valore quanto più l'immagine sarà kiara. invece, qdo ad esempio utilizzi i colori a tempera, stai utilizzando una sintesi sottrattiva. Infatti se mescoli i colori primari (ke in quel caso di solito sono blu, giallo, rosso, oppure CMYK km nel caso delle stampanti) otterrai al posto del bianco un grigio "cromatico" molto scuro. Infatti il modo per aumentare o diminuire la luminosità nello spazio cmyk è estremamente semplice..... è sufficiente diminuire il contributo del black. Nello spazio RGB invece devi agire sui 3 canali separatamente, ma se 6 in saturazione ovviamente otterrai delle distorsioni cromatiche, ke però tendono sempre a far salire la luminosità. ma cmq hai provato ad utilizzare questo metodo della somma di k sui 3 canali kn un immagine reale??? il risultato non dovrebbe essere troppo osceno, a meno di un'immagine già saturata in partenza. X quanto riguarda il contrasto invece....... boh.....in effetti nn so esattamente km agisce, penso sia una compressione o espansione dello spazio dei colori....... ad esempio.... se i tuoi 256 livelli per colore li esprimi con 512 livelli mantenendo le soglie di nero e bianco a 0 e 512 e ricavando proporzionalmente i valori dei colori, il contrasto dovrebbe dimezzarsi intuitivamente..... se invece esprimi tutto in una scala di 128 livelli il contrasto dovrebbe aumentare, essendo le variazioni più repentine...... Spero si sia capito qualcosa...e inoltre la parte del contrasto nn so se è una kazzata dato ke c pensavo mentre scrivevo
__________________
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Alla fine, per risolvere il tuo problema, saresti comunque costretto a "simulare" una conversione in uno spazio colore, per poterne cambiare la luminosità e/o il contrasto. Mi spiego meglio. Vuoi cambiare la luminosità del 10% di un pixel? Bene, sai che devi aumentare 3 * 10% il rosso, del 6 * 10% il verde e dell' 1 * 10% il blu, e poi normalizzare, controllando che ogni componente non abbia superato il valore 255, che il massimo possibile. Cos'hai fatto? Nient'altro che usare la media pesata (approssimata agli interi: è solo un esempio didattico, eh! Sì, puoi dire di non esser passato allo spazio HSV, ma è soltanto un'operazione di facciata, fittizia: in realtà è quel che hai fatto. Quindi, ti consiglio di operare come ti ho suggerito prima. Converti i valori RGB in HSV, applica la trasformazione che t'interessa, e li riconverti in RGB. Non devi usare nessuna API: devi soltanto applicare le nozioni che hai imparato a lezione, che poi è lo scopo per cui si fanno questi esercizi. Fidati, che ci sono passato pure io...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:46.



















