PySide: Separar una hoja de sprites / Separar una imagen en regiones contiguas de color

Estoy trabajando en un programa en el queNecesito separar hojas de sprites, o en otras palabras,separar una imagen en regiones contiguas de color.

Nunca he hecho ningún procesamiento de imágenes antes, así que me pregunto cómo haría esto. ¿Qué haría después de probar el color del píxel? ¿Cuál es la mejor manera de determinar qué píxel va con cada sprite?

Todas las imágenes de entrada tienen fondos uniformes, y un canal alfa diferente al del fondo cuenta como color. El orden de las imágenes de salida debe ser de izquierda a derecha, arriba-abajo. Mi proyecto está escrito en PySide, así que espero usarlo también para esta tarea, pero podría importar más bibliotecas si es necesario.

Gracias tus respuestas!

P.S .: No estoy seguro de si la etiqueta PySide es apropiada o no, ya que estoy usando PySide, pero la pregunta no involucra los aspectos de la GUI. Si un mod siente que no pertenece, siéntase libre de eliminarlo.

Por ejemplo, tengo un spritesheet que se parece a esto:

Quiero separarlo en estos: