¿Por que no miras el formato de imagen pgm?
Mayormente es un formato de imagen en el que las 3 primeras lineas son contenido sobre el formato de la imagen:
P2
100 100
255
P2 significa que la imagen se pondrá en codigo ascii y en escala de grises, la segunda linea es el ancho y el alto y la tercera es el máximo nivel de gris que se puede usar.
A partir de la cuarta linea se definirán los píxeles de la imagen con números del 0 al 255 (en este caso) separados por espacio o intro (el total de pixeles en este caso será de 10000 numeros del 0 al 255).
Después se pueden visualizar con gimp o con el comando display (viene con image magik). Un ejemplo de creación de una imagen completa en bash que te visualiza la imagen en pantalla (se puede ejecutar en el bash de linux) sería este:
(printf "P2\n90 90\n255\n"; I=0; while [ $I -lt 90 ]; do if [ $I -lt 30 ]; then II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "0 "; elif [ $II -lt 60 ]; then printf "255 "; else printf "0 "; fi; II=$(($II+1)); done; elif [ $I -lt 60 ]; then II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "0 "; elif [ $II -lt 60 ]; then printf "0 "; else printf "255 "; fi; II=$(($II+1)); done; else II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "255 "; elif [ $II -lt 60 ]; then printf "255 "; else printf "255 "; fi; II=$(($II+1)); done; fi; I=$(($I+1)); done; "0 255 0 0 0 255 255 255 255" )| display;
Si quieres guardar la imagen el proceso sería el siguiente:
(printf "P2\n90 90\n255\n"; I=0; while [ $I -lt 90 ]; do if [ $I -lt 30 ]; then II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "0 "; elif [ $II -lt 60 ]; then printf "255 "; else printf "0 "; fi; II=$(($II+1)); done; elif [ $I -lt 60 ]; then II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "0 "; elif [ $II -lt 60 ]; then printf "0 "; else printf "255 "; fi; II=$(($II+1)); done; else II=0; while [ $II -lt 90 ]; do if [ $II -lt 30 ]; then printf "255 "; elif [ $II -lt 60 ]; then printf "255 "; else printf "255 "; fi; II=$(($II+1)); done; fi; I=$(($I+1)); done; "0 255 0 0 0 255 255 255 255" ) > nombre.pgm;
Lo digo porque después puedes hacer tratamientos a imagenes y empezar a jugar con detectores de bordes sencillos y esas cosas. Haciendo cosas sencillas que después puede ver con un editor de imágenes.