Je suis en retard à la fête, mais pour les futurs chercheurs, j'ai utilisé l'algorithme suivant pour une application personnelle que j'ai écrit.
Tout d'abord, la région à réduire est sélectionné par l'utilisateur et transmis à l'oeil rouge la réduction de la méthode d'un Point de centre et de rayon. La méthode des boucles sur chaque pixel dans le rayon et le calcul suivant:
//Value of red divided by average of blue and green:
Pixel pixel = image.getPixel(x,y);
float redIntensity = ((float)pixel.R / ((pixel.G + pixel.B) / 2));
if (redIntensity > 1.5f) // 1.5 because it gives the best results
{
// reduce red to the average of blue and green
bm.SetPixel(i, j, Color.FromArgb((pixel.G + pixel.B) / 2, pixel.G, pixel.B));
}
J'aime vraiment les résultats de cette parce qu'ils gardent l'intensité de la couleur, ce qui signifie que la réflexion de la lumière de l'œil n'est pas réduite. (Cela signifie garder des yeux de leur "vivant" regardez.)