¿Cómo puedo transformar los histogramas de las imágenes en escala de grises para aplicar una proporción particular de luces / tonos medios / sombras?

Tengo una gran colección de imágenes de escala de grises de 7 mega píxeles y quiero procesarlas por lotes para ajustar el contraste y el brillo de modo que cada imagen contenga aproximadamente:

50% de reflejos (píxeles con un valor de luminiscencia de 200-255)

30% de medios tonos (píxeles con un valor de luminiscencia de 55-199)

20% de sombras (píxeles con un valor de luminiscencia de 0-54)

Tiene que ser razonablemente eficiente ya que solo tengo 1.8GHz y muchas imágenes. Entiendo que con NumPy puede hacer que PIL / Pillow procese imágenes de manera mucho más eficiente que sin ellas, pero nunca lo he usado antes.

Respuestas a la pregunta(1)

Su respuesta a la pregunta