Comment faire pour convertir les pixels en niveaux de gris?
Ok, je suis en utilisant Processing
qui me permet d'accéder aux pixels d'une image en tant que int[]
. Ce que je veux faire est de convertir l'image en niveaux de gris. Chaque pixel a une structure, comme indiqué ci-dessous:
...........PIXEL............
[red | green | blue | alpha]
<-8--><--8---><--8--><--8-->
Maintenant, quelles transformations ai-je besoin de s'appliquer à certaines valeurs RVB de l'image à échelle de gris,??
Ce que je veux dire c'est, combien dois-je ajouter /soustraire à faire de l'image en niveaux de gris ?
Mise à jour
J'ai trouvé quelques méthodes ici: http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
Vous devez vous connecter pour publier un commentaire.
Pour chaque pixel, la valeur de rouge, de vert et de bleu devrait être de leurs moyennes. Comme ceci:
Puisque dans votre cas, le pixel couleurs semblent être stockées dans un tableau plutôt que dans les propriétés, votre code pourrait finir par ressembler à:
L'idée générale est que lorsque vous avez une image en niveaux de gris, la couleur de chaque pixel mesure seulement l'intensité de la lumière à ce point - et la manière dont nous percevons, qui est la moyenne de l'intensité de chaque canal de couleur.
Le code suivant charge une image et cycle par le biais de ses pixels, la modification de la saturation à zéro et en gardant le même teinte et luminosité valeurs.
Processing
qui est un dialecte de Java