Come effettuare un analisi forense di un immagine

determinando: ELA (Error Level Analysis), distribuzione dei toni, tabella di quantizzazione, contrasto, struttura, texture, varianza colore, immagine dello spettro di magnitudo, immagine a bassa frequenza, immagine dei contorni, rilevamento bordi e dati EXIF, IPCT.

Con questa utility è possibile eseguire un'analisi approfondita delle immagini digitali

Tramite l'utilizzo combinato di librerie come PIL, cv2, matplotlib e numpy verrano eseguite le seguenti operazioni:

  • Dimensioni in Mb e Kb dell'immagine
  • Dimensioni in pixel dell'immagine
  • Nomi e numero dei canali colore presenti nell'immagine
  • Numero di colori unici presenti in un'immagine
  • Hash dell'immagine: Hash MD5, SHA-1 e SHA-256
  • Analisi del livello di errore (ELA)
  • Istogramma della Distribuzione dei Toni
  • Grafico a Torta della Distribuzione dei Colori
  • Istogramma dei valori dei pixel di un'immagine
  • Tabelle di quantizzazione
  • Spettro di magnitudine di un'immagine
  • Contrasto dell'immagine
  • Texture
  • Varianza colori
  • Immagine low pass
  • Immagine rilevamento bordi
  • Rilevamento pixel nascosti
  • Estrazione dei dati EXIF
  • Estrazione dei dati IPCT
  • Estrazione segmenti standard JPEG
  • Calcolo del rumore
  • Calcolo del gamma
  • Rileva le linee nell'immagine tramite l'algoritmo di Hough
  • Calcolo della simmetria
  • Rileva steganografia
  • Calcolo dell'entropia

Istogramma della Distribuzione dei Toni e Grafico a Torta della Distribuzione dei Colori

Istogramma della Distribuzione dei Toni

Mostra la frequenza di ciascun livello di grigio nell'immagine

  • Punte alte: Indicano toni di grigio meno comuni.
  • Punte basse: Indica una buona gamma di toni di grigio.
  • Distribuzione non uniforme: Può indicare un'immagine con dominanza di alcuni toni specifici.
  • Grafico a Torta della Distribuzione dei Colori

    Mostra la percentuale di ciascun canale colore nell'immagine.

  • Sezioni grandi: Indicano colori dominanti nell'immagine.
  • Sezioni piccole: Indicano colori meno prevalenti.
  • Equilibrio dei colori: Un'ampia gamma di colori indica una varietà cromatica nell'immagine.
  • Lettura dell'Istogramma

    Scopo dell'Istogramma

    L'istogramma mostra la distribuzione dei valori dei pixel dell'immagine, fornendo informazioni sulla luminosità e il contrasto. Ogni barra rappresenta la frequenza di un valore di pixel specifico (da 0 a 255).

    Come Leggere l'Istogramma

    Pixel Value (Valore del Pixel): L'asse x rappresenta i valori dei pixel, che vanno da 0 (nero) a 255 (bianco).

    Frequency (Frequenza): L'asse y rappresenta la frequenza di ciascun valore di pixel nell'immagine.

    Interpretazione dell'Istogramma

    Distribuzione Uniforme: Un istogramma con una distribuzione uniforme indica un'immagine con una gamma equilibrata di toni.

    Punte Alte: Alte frequenze in una particolare gamma di valori indicano che quei toni sono dominanti nell'immagine.

    • Punta Alta a Sinistra: Indica un'immagine più scura.
    • Punta Alta a Destra: Indica un'immagine più luminosa.

    Picchi Multipli: Indicano che l'immagine contiene diverse aree con differenti livelli di luminosità.

    Gamme Vuote: Se ci sono intervalli sull'asse x senza barre, significa che quei valori di pixel sono assenti nell'immagine, il che potrebbe suggerire una bassa gamma dinamica.

    L'istogramma è uno strumento potente per l'analisi visiva e può essere utilizzato per effettuare regolazioni sull'immagine, come la correzione dei livelli, per migliorare la qualità visiva complessiva.

    Lettura dell'Immagine ELA

    Cosa Cercare nell'Immagine ELA

    Aree di Alto Contrasto: Le aree che appaiono significativamente diverse (più luminose o più scure) rispetto al resto dell'immagine possono indicare manipolazioni.

    Consistenza: In un'immagine autentica, le variazioni dovute alla compressione JPEG tendono ad essere uniformi. Le incongruenze possono suggerire modifiche.

    Come Interpretare l'Immagine ELA

    Aree Uniformi: Se l'immagine appare uniforme senza variazioni significative, è meno probabile che sia stata manipolata.

    Differenze Significative: Se ci sono aree con differenze evidenti, queste potrebbero essere punti di manipolazione. Ad esempio, la sovrapposizione di un oggetto, ritocchi o alterazioni di parti specifiche dell'immagine.

    Lettura delle Heatmap delle Tabelle di Quantizzazione

    Scopo delle Heatmap

    Le tabelle di quantizzazione vengono utilizzate nella compressione JPEG per ridurre la quantità di dati mantenendo una qualità visiva accettabile. Le heatmap visualizzano queste tabelle, mostrando come vengono compressi i vari componenti di frequenza dell'immagine.

    Come Leggere le Heatmap

    Assi delle Frequenze:

    • L'asse x rappresenta i componenti di frequenza orizzontali.
    • L'asse y rappresenta i componenti di frequenza verticali.

    Valori nella Heatmap:

    • Ogni cella della matrice rappresenta un valore di quantizzazione per un componente di frequenza specifico.
    • Valori più alti indicano una maggiore compressione (meno dettagli).
    • Valori più bassi indicano una minore compressione (più dettagli).

    Colormap:

    • I colori rappresentano i valori di quantizzazione, con una barra dei colori che indica la scala dei valori.
    • I colori più scuri generalmente rappresentano valori più bassi, mentre i colori più chiari rappresentano valori più alti.

    Interpretazione delle Heatmap

    • Componenti a Bassa Frequenza: Solitamente, i componenti a bassa frequenza (in alto a sinistra) hanno valori di quantizzazione più bassi, preservando più dettagli.
    • Componenti ad Alta Frequenza: I componenti ad alta frequenza (in basso a destra) tendono ad avere valori di quantizzazione più alti, riducendo i dettagli per risparmiare spazio.

    Queste heatmap aiutano a comprendere come l'immagine è stata compressa e possono essere utili per l'analisi forense digitale, per valutare la qualità della compressione e per identificare eventuali manipolazioni.

    Lettura dello Spettro di Magnitudine

    Scopo dello Spettro di Magnitudine

    Lo spettro di magnitudine mostra la distribuzione delle frequenze dell'immagine. È utile per rilevare caratteristiche come pattern ripetuti, dettagli nascosti e manipolazioni.

    Come Leggere lo Spettro di Magnitudine

    Componenti di Frequenza:

    • L'asse x rappresenta le componenti di frequenza orizzontali.
    • L'asse y rappresenta le componenti di frequenza verticali.

    Magnitudine:

    • I valori più alti di magnitudine (mostrati come aree più luminose) indicano frequenze dominanti.
    • I valori più bassi di magnitudine (mostrati come aree più scure) indicano frequenze meno dominanti.

    Interpretazione dello Spettro di Magnitudine

    • Centro dello Spettro: La componente al centro rappresenta la frequenza zero (la media dei valori dei pixel). Un valore alto indica un'immagine con una forte componente DC (molto luminosa o scura).
    • Frequenze Basse: Le frequenze basse (vicino al centro) rappresentano i dettagli grossolani dell'immagine.
    • Frequenze Alte: Le frequenze alte (verso i bordi) rappresentano i dettagli fini dell'immagine.

    Lo spettro di magnitudine è uno strumento potente per analizzare le caratteristiche frequenziali dell'immagine e può essere utilizzato per identificare manipolazioni, pattern ripetuti e altre caratteristiche nascoste.

    Lettura del Contrasto

    Scopo del Contrasto

    Il contrasto è una misura della differenza tra le aree chiare e scure di un'immagine. Un contrasto alto significa che c'è una grande differenza tra le parti più luminose e quelle più scure dell'immagine, mentre un contrasto basso indica che l'immagine è più uniforme in termini di luminosità.

    Come Interpretare il Contrasto

    Contrasto Alto:

    • Un valore di deviazione standard elevato indica che l'immagine ha un'ampia gamma di toni, con aree chiare e scure ben definite.
    • Utile per immagini che necessitano di dettagli distinti e chiari.

    Contrasto Basso:

    • Un valore di deviazione standard basso indica che l'immagine è più piatta, con meno differenze tra le aree chiare e scure.
    • Utile per immagini con un look più morbido o per ridurre i dettagli di fondo.

    Il contrasto è una caratteristica importante per l'analisi delle immagini e può influenzare significativamente la percezione visiva e la qualità dell'immagine.

    Lettura della Texture

    Scopo della Texture

    La texture di un'immagine rappresenta le variazioni spaziali nei toni di grigio che formano i pattern nell'immagine. La GLCM è una tecnica comunemente utilizzata per l'analisi della texture e può fornire informazioni preziose sulla struttura e la regolarità dell'immagine.

    Come Interpretare la Texture

    Contrasto della Texture:

    • Un valore alto di contrasto della texture indica una grande variazione nei livelli di grigio, suggerendo una texture ruvida o irregolare.
    • Un valore basso di contrasto della texture indica poca variazione nei livelli di grigio, suggerendo una texture liscia o uniforme.

    Il contrasto della texture è utile in vari campi, tra cui il riconoscimento delle immagini, la segmentazione e l'analisi delle caratteristiche superficiali.

    Lettura della Varianza dei Colori

    Scopo della Varianza dei Colori

    La varianza dei colori misura quanto i colori dell'immagine sono dispersi rispetto alla media. È un indicatore della diversità cromatica nell'immagine.

    Come Interpretare la Varianza dei Colori

    Varianza Alta:

    • Una varianza alta indica che l'immagine ha una vasta gamma di colori. I pixel dell'immagine hanno valori molto diversi tra loro.
    • Questo è comune nelle immagini con molti dettagli e colori vivaci.

    Varianza Bassa:

    • Una varianza bassa indica che l'immagine ha una gamma cromatica più uniforme. I pixel dell'immagine hanno valori simili tra loro.
    • Questo è comune nelle immagini con pochi colori o toni uniformi.

    La varianza dei colori è utile per varie applicazioni, come l'analisi della qualità dell'immagine, la segmentazione delle immagini e la valutazione della complessità visiva.

    Lettura dell'Immagine a Bassa Frequenza

    Scopo dell'Immagine a Bassa Frequenza

    Un'immagine a bassa frequenza mostra le componenti di bassa frequenza di un'immagine originale, rimuovendo i dettagli ad alta frequenza. Questo tipo di immagine è utile per analizzare le caratteristiche generali dell'immagine senza l'influenza dei dettagli fini.

    Come Interpretare l'Immagine a Bassa Frequenza

    Componenti a Bassa Frequenza:

    • Le aree lisce e uniformi dell'immagine rappresentano le componenti a bassa frequenza.
    • Le transizioni graduali e le ombre sono mantenute, mentre i dettagli fini vengono sfumati.

    Utilità dell'Immagine a Bassa Frequenza:

    • Analisi dell'Immagine: Può essere utilizzata per identificare le strutture globali dell'immagine.
    • Pre-elaborazione: Utilizzata come fase di pre-elaborazione per ridurre il rumore prima di applicare altri algoritmi di analisi delle immagini.
    • Filtro Anti-Aliasing: Utilizzata per ridurre l'effetto aliasing in applicazioni di visualizzazione delle immagini.

    Lettura dell'Immagine con i Bordi Rilevati

    Scopo dell'Immagine con i Bordi Rilevati

    Un'immagine con i bordi rilevati mette in evidenza i contorni degli oggetti presenti nell'immagine originale. Questo è utile per l'analisi della forma, il riconoscimento degli oggetti e la segmentazione delle immagini.

    Come Interpretare l'Immagine con i Bordi Rilevati

    Bordi Evidenziati:

    • I bordi vengono visualizzati come linee bianche su uno sfondo nero.
    • Le linee rappresentano le transizioni brusche nei valori di intensità dei pixel, che corrispondono ai contorni degli oggetti.

    Utilità dell'Immagine con i Bordi Rilevati:

    • Analisi della Forma: Può essere utilizzata per identificare le forme degli oggetti nell'immagine.
    • Riconoscimento degli Oggetti: Aiuta a rilevare e riconoscere oggetti specifici basandosi sui loro contorni.
    • Segmentazione delle Immagini: Può essere utilizzata come passo preliminare per segmentare l'immagine in regioni diverse.

    Lettura dei Pixel Nascosti

    Scopo del Rilevamento dei Pixel Nascosti

    Il rilevamento dei pixel nascosti è utile per identificare la presenza di informazioni nascoste in un'immagine. Questa tecnica è comunemente usata nella steganografia, dove i dati sono nascosti all'interno di un'immagine.

    Come Interpretare i Risultati

    Numero di Pixel Nascosti:

    • Un numero elevato di pixel nascosti può indicare la presenza di informazioni steganografiche.
    • Un numero basso può indicare che non ci sono informazioni nascoste significative nell'immagine.

    Lettura dei Segmenti JPEG

    Scopo dell'Estrazione dei Segmenti JPEG

    L'estrazione dei segmenti JPEG è utile per analizzare la struttura interna di un file JPEG. Ogni segmento contiene informazioni specifiche come metadati, tabelle di quantizzazione, dati di scansione e altro.

    Come Interpretare i Segmenti JPEG

    Nomi dei Segmenti:

    • JPEG SOI (Start of Image): Indica l'inizio del file JPEG.
    • JPEG APP0: JFIF: Contiene i metadati JFIF.
    • JPEG APP1: Exif: Contiene i metadati Exif.
    • JPEG APP13: Photoshop 3.0: Contiene metadati specifici di Photoshop.
    • JPEG DQT (Define Quantization Table): Contiene le tabelle di quantizzazione.
    • JPEG SOF0 (Start of Frame, Baseline): Indica l'inizio di un frame basato.
    • JPEG SOF2 (Start of Frame, Progressive): Indica l'inizio di un frame progressivo.
    • JPEG DHT (Define Huffman Table): Contiene le tabelle di Huffman.
    • JPEG SOS (Start of Scan): Indica l'inizio dei dati di scansione.
    • JPEG EOI (End of Image): Indica la fine del file JPEG.

    Dati Leggibili:

    • I dati leggibili estratti dai segmenti possono contenere informazioni utili come commenti, descrizioni e altri metadati incorporati.

    Lettura del Rumore

    Scopo del Calcolo del Rumore

    Il rumore in un'immagine rappresenta la variazione casuale dei valori di pixel, che può influenzare la qualità visiva dell'immagine. Il rumore può essere causato da varie fonti, come il sensore della fotocamera, l'illuminazione e le condizioni ambientali.

    Come Interpretare il Rumore

    Deviazione Standard Alta:

    • Un valore alto di deviazione standard indica una maggiore quantità di rumore nell'immagine.
    • Questo può rendere l'immagine meno chiara e dettagliata.

    Deviazione Standard Bassa:

    • Un valore basso di deviazione standard indica una minore quantità di rumore nell'immagine.
    • Questo rende l'immagine più chiara e dettagliata.

    Il rumore è una caratteristica importante da considerare nell'analisi delle immagini, specialmente nelle applicazioni di visione artificiale, miglioramento delle immagini e riconoscimento di pattern.

    Lettura del Gamma

    Scopo del Calcolo del Gamma

    Il valore gamma di un'immagine è una misura della luminosità relativa dell'immagine. È utile per comprendere la distribuzione della luminosità e per applicare correzioni di gamma che migliorano la visualizzazione dell'immagine.

    Come Interpretare il Valore Gamma

    Gamma Alto:

    • Un valore gamma alto (vicino a 1) indica che l'immagine è relativamente luminosa.
    • Questo può essere dovuto a una sovraesposizione o a una scena con molta luce.

    Gamma Basso:

    • Un valore gamma basso (vicino a 0) indica che l'immagine è relativamente scura.
    • Questo può essere dovuto a una sottoesposizione o a una scena con poca luce.

    Il valore gamma è importante per l'elaborazione delle immagini e la correzione della luminosità, specialmente nelle applicazioni di miglioramento delle immagini e visualizzazione.

    Lettura delle Linee Rilevate

    Scopo del Rilevamento delle Linee

    Il rilevamento delle linee in un'immagine è utile per identificare e analizzare le strutture lineari presenti. Questo è particolarmente utile in applicazioni come la visione artificiale, la robotica e il riconoscimento di pattern.

    Come Interpretare le Linee Rilevate

    Linee Disegnate:

    • Le linee rilevate vengono disegnate come linee rosse sull'immagine originale.
    • Le linee rappresentano le transizioni brusche nei valori di intensità dei pixel che formano strutture lineari.

    Utilità del Rilevamento delle Linee:

    • Analisi della Struttura: Può essere utilizzato per identificare bordi e contorni lineari.
    • Riconoscimento degli Oggetti: Aiuta a rilevare oggetti specifici basandosi sulle loro caratteristiche lineari.
    • Segmentazione delle Immagini: Può essere utilizzato come passo preliminare per segmentare l'immagine in regioni diverse.

    Lettura della Simmetria

    Scopo del Calcolo della Simmetria

    Il calcolo della simmetria è utile per identificare quanto un'immagine è simmetrica rispetto a un asse verticale. Questo può essere utile in vari contesti, come l'analisi di immagini di volti, architettura, natura e altri oggetti dove la simmetria è una caratteristica importante.

    Come Interpretare la Simmetria

    Simmetria Alta:

    • Un valore di simmetria alto (vicino a 1) indica che l'immagine è molto simmetrica rispetto all'asse verticale.
    • Questo è comune in immagini di oggetti simmetrici come volti umani, edifici, e oggetti creati dall'uomo.

    Simmetria Bassa:

    • Un valore di simmetria basso (vicino a 0) indica che l'immagine è poco simmetrica rispetto all'asse verticale.
    • Questo è comune in immagini di scene naturali o oggetti irregolari.

    La simmetria è una caratteristica importante da considerare nell'analisi delle immagini, specialmente nelle applicazioni di riconoscimento di pattern e analisi visiva.

    Lettura dei Dati di Steganografia

    Scopo del Rilevamento della Steganografia

    La steganografia è una tecnica per nascondere informazioni all'interno di un file digitale, come un'immagine. Il rilevamento della steganografia è utile per identificare la presenza di messaggi nascosti, che possono essere utilizzati per scopi leciti o illeciti.

    Come Interpretare i Dati di Steganografia

    Messaggio Rilevato:

    • Se viene rilevato un messaggio nascosto, verrà visualizzato nel dizionario steganography_data sotto la chiave 'message'.
    • Questo messaggio può contenere informazioni nascoste che sono state incorporate nell'immagine utilizzando la tecnica LSB.

    Nessun Messaggio Rilevato:

    • Se non viene rilevato alcun messaggio nascosto, il dizionario steganography_data sarà vuoto.
    • Questo indica che l'immagine non contiene informazioni nascoste rilevabili con la tecnica LSB.

    La steganografia è una tecnica potente e la sua rilevazione può essere cruciale in vari campi, inclusa la sicurezza delle informazioni e l'analisi forense digitale.

    Lettura della Qualità di Compressione

    Scopo del Calcolo della Qualità di Compressione

    Il calcolo della qualità di compressione di un'immagine è utile per comprendere il livello di compressione applicato e la qualità visiva risultante. Questo è particolarmente importante per l'analisi delle immagini, il miglioramento della qualità e l'ottimizzazione dello spazio di archiviazione.

    Come Interpretare la Qualità di Compressione

    Qualità:

    • Se la qualità di compressione è disponibile nei metadati, indica il livello di compressione applicato all'immagine.
    • Un valore più alto indica una qualità migliore (meno compressione), mentre un valore più basso indica una qualità inferiore (maggiore compressione).

    Metodo di Compressione:

    • Indica il metodo di compressione utilizzato per l'immagine (ad esempio, 'jpeg' per JPEG).
    • Se il metodo di compressione non è disponibile nei metadati, viene stimato basandosi sul formato dell'immagine e le tabelle di quantizzazione.

    Lettura dell'Entropia

    Scopo del Calcolo dell'Entropia

    L'entropia di un'immagine è una misura della quantità di informazione o complessità presente nell'immagine. Un valore di entropia più alto indica una maggiore complessità e varietà nei valori dei pixel.

    Come Interpretare l'Entropia

    Entropia Alta:

    • Un valore di entropia alto indica che l'immagine ha una grande varietà di valori di pixel, il che suggerisce una maggiore complessità e dettagli.
    • Questo è comune nelle immagini con molti dettagli e variazioni di colore.

    Entropia Bassa:

    • Un valore di entropia basso indica che l'immagine ha una minore varietà di valori di pixel, suggerendo una minore complessità.
    • Questo è comune nelle immagini uniformi o con pochi dettagli.

    L'entropia è una caratteristica importante da considerare nell'analisi delle immagini, specialmente nelle applicazioni di compressione delle immagini, miglioramento delle immagini e riconoscimento di pattern.