Comment manipuler une image au niveau du pixel en C?

Comment lire une image en C afin que je puisse avoir un contrôle direct sur ses pixels (comme nous le faisons dans MATLAB)?

J'ai essayé à l'ancienne:

FILE *fp;
fp = fopen("C:\\a.tif","r");

qui me donne juste le ascii forme de fichier image (je pense).

Comment puis-je obtenir pixels de niveau de contrôle sur l'image et faire quelques opérations de base comme, disons, de l'inversion de l'image?

C est un peu plus faible niveau que vous semblez le penser il est. Que fopen est de vous donner binaires brutes, et c'est à vous de comprendre comment l'interpréter en binaire comme une image, ou d'utiliser une bibliothèque comme indiqué ci-dessous.
il a spécifiquement demandé comment décoder ces fichiers, pas le contenu binaire. Je pense que C est une meilleure option si vous voulez que votre programme pour être rapide, d'autre Python fournit PIL qui est assez bon.
Que fopen() vous donne pas de telles données binaires brutes, c'est de vous donner le mode texte, ce qui signifie qu'il est susceptible de lire certains fichiers correctement sur Windows.
Mais sur Linux et UNIX, il est très bien.
il n'a pas, il a demandé comment manipuler les pixels, comme il le fait dans matlab. Je n'ai jamais utilisé matlab, mais je soupçonne que c'est de haut niveau, assez pour ne pas forcer l'utilisateur à décoder des données binaires brutes en une image. Je suis simplement observer que C est pas que le haut niveau, et il ne comprend pas les images sans bibliothèque, ou sans l'écriture d'un programme pour décoder le binaire compressé de l'information dans les données de pixel. @Lutz, ah oui je suppose qu'il a besoin d'un "b" drapeau ou quelque chose? Je n'étais pas au courant que C fait la distinction entre le texte et binaire.

OriginalL'auteur Moeb | 2009-10-20