Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-10-2012, 18:40   #1
peppedilillo
Junior Member
 
Iscritto dal: May 2012
Messaggi: 8
trattamento delle immagini, domanda naive

ciao a tutti ragazzi!

ho a che fare con alcune foto sciupate da rumore. Qualcosa di analogo a :


.



Una soluzione banale al rumore è quella di una media del colore pixel per pixel su di una cornice dello stesso.
Conosco benino il C e il fortran, un po' meno il python, che ho usato precedentemente per applicazioni scientifiche. Un'idea di questo tipo è molto vicina al mio 'comprendere' la programmazione.
Per intenderci, se invece che una fotografia NxM pixel avessi una matrice NxM e dovessi mediare ogni valore con gli adiacenti saprei immediatamente dove mettere mano.

Adesso la domanda: qualcuno sa darmi un'idea del come e se sia possibile trattare problemi di questo tipo (che so essere tra l'altro molto comuni nel trattamento di immagini astronomiche) con i mezzi a mia disposizione?
La questione mi incuriosisce ed in un futuro qualche conoscenza a riguardo potrebbe tornare utile, sarei disposto anche a studiare qualche dispensa di interesse.


a presto, ciao!

Ultima modifica di peppedilillo : 12-10-2012 alle 18:44.
peppedilillo è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 19:30   #2
DooM1
Senior Member
 
L'Avatar di DooM1
 
Iscritto dal: Jul 2002
Città: Cagliari
Messaggi: 13495
Non ho mai programmato filtri per immagini, ma correggere del rumore da una sola foto è teoricamente impossibile.
Secondo me è più da sezione grafica... ma magari mi sbaglio.
L'unico modo per attenuare realmente il rumore, è avere più foto dello stesso identico soggetto, siccome il rumore non è fisso mentre il soggetto si (ovvio se parliamo di una foto mossa tipo un albero con vento, o evento sportivo la cosa risulta molto difficile), con una serie di calcoli si può sottrarre il rumore dall'immagine pulita.

Ma togliere il rumore da una foto, è praticamente impossibile, si può attenuare un po' con un filtro particolare di sfocatura magari con un algoritmo particolare di riconoscimento del rumore (con il pericolo che il riconoscimento fallisca e rimuova parti dell'immagine reale), ma perdi dettagli, non è una rimozione è un "cammuffamento".

Di più non so andare, ma questi sono i principi teorici che conosco; gli algoritmi non saprei farli
__________________
MoBo:Asus Prime x470-Pro*CPU:AMD Ryzen 5700x*RAM:Kingston FURY KF432C16RB2K2/16*Sk.Vid:Asus DUAL-RX580-O8G*Ali:Enermax Revolution87+ 550W*Storage:Samsung 970 Evo Plus 1TB + Samsung 860 Evo 1TB*Mons:Dell 2209WAf + LG 24EA53VQ
DooM1 è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 20:06   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Per il miglioramento dell'immagine in questione hai diverse opzioni. Probabilmente ti conviene provarne piu' di una, per vedere la differenza nei risultati.
Il mio consiglio e':
- filtro lineare (i.e. convoluzione)
- filtro non lineare (i.e. mediana)
- trasformata bidimensionale di Fourier;

Riguardo la convoluzione: si tratta di sostituire un pixel (i.e. un valore della matrice rappresentante l'immagine) con un valore calcolato mediante l'applicazione di una matrice, per esempio 3X3 intorno al punto in questione.
Per esempio, puoi applicare la matrice
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
ad ogni punto dell'immagine.
Al punto (x,y) verra' sostituito il valore
1/9f(x-1,y-1) + 1/9(x,y-1) + .....
(Beh, per questa particolare matrice il risultato equivale alla sostituzione del valore di intensita' del punto con la media dei suoi vicini, incluso se stesso).
Puoi anche incrementare la matrice a 5x5, 7x7,...
Il risultato e' "cosmetico": l'immagine migliora parecchio ma all'aumentare della matrice cresce la sensazione di sfocatura.

- filtro non lineare (i.e. mediana).
Costruisci una nuova immagine mettendo alle coordinate (x,y) il punto ottenuto come mediana dei 9 punti (i.e. il punto (x,y) e i suoi 8 vicini).
In pratica, prendi i 9 punti, li ordini, prendi la mediana e la metti nella nuova immagine alle coordinate (x,y).
Il risultato e' che i vari punti che "sparano" vengono cancellati.

- Trasformata di fourier bidimensionale.
applichi la trasformata e otterrai due "immagini": quella delle fasi e quello dei moduli (spettro).
Plottando lo spettro otterrai un'immagine simmetrica rispetto al centro. Ovviamente questa immagine rappresenta le frequenze presenti nell'immagini. Quelle basse ti danno le forme delle immagini e si concentrano al centro, quelle alte ti danno i dettagli e vanno verso la periferia.
Il rumore che vedi sull'immagine e' ad alta frequenza, quindi ti bastera' disegnare un contorno nero per filtrarlo. Ovviamente piu' filtri, piu' l'immagine inizialmente perdera' il rumore ma perdera' progressivamente anche i dettagli. Questa tecnica e' molto usata nella compressione delle immagini.

Ah! Dimenticavo. Le immagini sono quasi sempre in formato RGB che mal si presta a queste techiche (applicarle ad un singolo canale produce risultati disastrosi). Conviene applicare una conversione verso un altro formato, per esempio HSL. Le conversioni sono formulette standard che si trovano in rete.

Parere personale: usa OpenCv. Fa gia' tutto ed in maniera molto ottimizzata




Quote:
Originariamente inviato da peppedilillo Guarda i messaggi
ciao a tutti ragazzi!

ho a che fare con alcune foto sciupate da rumore. Qualcosa di analogo a :


.



Una soluzione banale al rumore è quella di una media del colore pixel per pixel su di una cornice dello stesso.
Conosco benino il C e il fortran, un po' meno il python, che ho usato precedentemente per applicazioni scientifiche. Un'idea di questo tipo è molto vicina al mio 'comprendere' la programmazione.
Per intenderci, se invece che una fotografia NxM pixel avessi una matrice NxM e dovessi mediare ogni valore con gli adiacenti saprei immediatamente dove mettere mano.

Adesso la domanda: qualcuno sa darmi un'idea del come e se sia possibile trattare problemi di questo tipo (che so essere tra l'altro molto comuni nel trattamento di immagini astronomiche) con i mezzi a mia disposizione?
La questione mi incuriosisce ed in un futuro qualche conoscenza a riguardo potrebbe tornare utile, sarei disposto anche a studiare qualche dispensa di interesse.


a presto, ciao!
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 20:28   #4
peppedilillo
Junior Member
 
Iscritto dal: May 2012
Messaggi: 8
Grazie mille ragazzi!


@sottovento: grazie ancora per le belle soluzioni ma avrei bisogno di qualche informazione/riferimento preliminare .. Per intenderci:
Come 'aprire' un file immagine in (per esempio) C?
Come trattare con i pixel-valori?
peppedilillo è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 20:36   #5
Cait Sith
Senior Member
 
L'Avatar di Cait Sith
 
Iscritto dal: Apr 2005
Messaggi: 309
il rumore presente nell'immagine mi sembra di tipo sale e pepe e di solito per rimuovere rumori di questo tipo si usano filtri mediani
dato che il filtro mediano 2D ha il problema che maltratta i corner, di solito si applicano filtri 1D per righe e poi per colonne (o viceversa, che dà un risultato diverso numericamente, ma simile per l'occhio umano)
programmare una cosa del genere, dato che devi filtrare per righe e per colonne, è abbastanza semplice anche in un linguaggio di basso livello tipo C (oppure se non vuoi perdere troppo tempo, matlab si presta molto)
devi avere solo:
- una routine per il sorting (usa una funzione quicksort che trovi in rete)
- una routine per il calcolo della mediana (che chiama al suo interno il quicksort)
i bordi sono un problema, perchè quando arrivi vicino al bordo dell'immagine o accorci la lunghezza del filtro (e i bordi rimangono meno filtrati) oppure prolungi i valori dei bordi anche oltre (però se l'ultimo campione è sbagliato il bordo viene filtrato male)
non mi dilungo oltre, per approfondire cerca rumore sale e pepe (salt and pepper noise, in inglese) e filtro mediano (median filter) e troverai un sacco di informazioni a riguardo

comunque anche il filtro mediano, per immagini così corrotte, non fa i miracoli
Cait Sith è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 21:14   #6
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da peppedilillo Guarda i messaggi
Grazie mille ragazzi!


@sottovento: grazie ancora per le belle soluzioni ma avrei bisogno di qualche informazione/riferimento preliminare .. Per intenderci:
Come 'aprire' un file immagine in (per esempio) C?
Come trattare con i pixel-valori?
Ti conviene affidarti a delle librerie scaricabili gratuitamente da internet quali, per esempio, OpenCv, che oltretutto e' multipiattaforma.

Nella libreria standard di Java hai gia' i metodi che ti servono, sono in ImageIO.
Una volta caricata l'immagine, hai la possibilita' di vederla come matrice, su cui applicare le operazioni in questione
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 21:37   #7
peppedilillo
Junior Member
 
Iscritto dal: May 2012
Messaggi: 8
Grazie vi farò sapere i risultati!
Peppe
peppedilillo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Blackout? In Austria le antenne telefoni...
Crimson Desert: finalmente è stat...
Stellantis sospende la produzione in sei...
State of Play: mostrato il nuovo DualSen...
SAP e AWS insieme per il cloud sovrano
ECOVACS DEEBOT MINI a meno di 300€: robo...
SUSE annuncia supporto ufficiale a CUDA ...
AMD porta PyTorch nativo su Windows e Li...
Tesla acquista pubblicità sui soc...
Eureka J15 Max Ultra a 899€ contro J15 U...
Forza Horizon 6 porta i giocatori in Gia...
Battlefield 6: dall'ultimo State of Play...
Amazon fa crollare i prezzi: componenti ...
Gli italiani spendono fino al 50% della ...
Boom del ricondizionato in Italia: conso...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v