PDA

Visualizza la versione completa : [C] Gestire immagini non compresse


web_pirate
18-12-2011, 22:08
Salve a tutti ragazzi! :D Cercavo un modo per poter leggere "informazioni" da una immagine con un programma in C. Mi basterebbe riuscire a salvare in un array il valore di ogni pixel: 1 se diverso dal bianco e 0 se bianco. Non so se si necessita di librerie particolari o soltanto della funzione fread. Qualcuno mi può aiutare? Sono su Linux, se può fare la differenza...

oregon
18-12-2011, 22:20
Non è semplice come puoi pensare.

Il C non ha nulla di nativo per fare quello che chiedi e tutto dipende dal tipo di immagine di cui si parla.

Ci sono tanti formati (e anche tra gli stessi formati, ci sono versioni diverse) ed è necessario appoggiarsi a librerie specifiche (che trovi su internet con una ricerca).

web_pirate
18-12-2011, 22:26
Intanto grazie per aver risposto così velocemente. Allora, io non so da dove iniziare. Per prima cosa credo che dovrei capire in che modo vengono salvate le informazioni che "fanno" l'immagine dentro il file. Inizierei con un formato che non è compresso, ma su Linux qual'è uno di questi? Diciamo che questa è la prima domanda: qual'è uno dei formati di immagini non compresse usate su Linux?

oregon
18-12-2011, 22:27
No ... così non andiamo avanti ...

Serve un problema concreto ... cosa stai facendo?

Dove sono queste immagini? Sono foto (file .jpg) ...?

web_pirate
18-12-2011, 22:33
Allora, ho in mente di creare un programma che, sfruttando una rete neurale, riesca a identificare un certo carattere alfabetico. Per farlo ho bisogno di un array che conservi al suo interno tutti i valori di tutti i pixel. L'immagine da analizzare la farò io nel formato che meglio si presterà a tale scopo, ma che non so ancora quale sia. Ho bisogno di un formato dal quale leggere facilmente le informazioni, quindi senza compressione.

web_pirate
21-12-2011, 18:52
Nessuno mi può dare una dritta? :cry:

MItaly
21-12-2011, 20:11
Il formato non compresso più diffuso è il BMP (di fatto una packed DIB con un header di fronte), non è troppo complicato ma ha un po' di cose a cui badare (righe memorizzate in ordine inverso e allineate a 32 bit).
Più semplice invece è il PBM, usato spesso su Linux come formato "intermedio" durante le elaborazioni.

Di entrambi i formati trovi abbondante documentazione in rete.

Loading