|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jan 2011
Messaggi: 2
|
leggere pixel di un'immagine in linguaggio C
Salve!
Avrei la necessità di creare urgentemente un sorgente in linguaggio C, capace di recuperare le informazioni di un'immagine raster il cui path è passato da linea di comando. In pratica, dato un file RGB ad esempio di 10 x 10 pixel, dovrei contare quanti pixel neri ad esempio ci sono e quanti bianchi nella matrice risultante 10x10. Ho visto che ci sono delle librerie per il trattamento delle immagini come graphicsmagick. L'ho installata ma non riesco a comprenderne il funzionamento. Qualcuno potrebbe aiutarmi con un esempio per un'operazione così banale? Sorgenti C di esempio? Grazie!! pipe |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Difficile dire che puoi fare se non sappiamo com'è che si rasterizza st'immagine
![]() Se devi solo rasterizzare righe nere su sfondo bianco, direi che fai prima a fare tutto a mano con qualche algoritmo per rasterizzare linee. Semplicemente crei un array in memoria e ci rasterizzi il path. Poi accedere ai pixel è banale, dato che è un semplice array ![]() |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jan 2011
Messaggi: 2
|
Non devo "rasterizzare linee". Devo prendere un'immagine come questa ad esempio:
http://img80.imageshack.us/img80/3641/10x10.png e ricavare le coordinate dei punti neri: nell'esempio sono (1,3), (1,9) e (10,1). Vorrei inoltre chiederti cosa centra la rasterizzazione visto che è un processo per convertire un'immagine vettoriale in raster. Qui l'immagine è già raster. Ultima modifica di pipe.net : 19-01-2011 alle 23:35. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Ciao.
Che formato è il file di input? E' un'immagine proprio raw dove ogni 3 pixel corrispondono ai valori RGB di 1 pixel, o è compressa/incapsulata in qualche formato? Nel primo caso è semplice, basta che apri il file in modo binario e leggi 3 unsigned char alla volta che ti indicano il valore del pixel, partendo dall'angolo alto-sx. Nel secondo è un poco più complesso, devi prima leggere l'header per capire da dove iniziano i dati, e poi leggere i dati sempre in modo binario in base a come vengono rappresentati in quel formato. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:59.