Utiliser numpy pour masquer une image avec un motif?

Je suis en utilisant numpy pour construire pixel tableaux. Une image en 800x600 est un 3-dimensions tableau de uint8, 800x600x3. J'ai aussi un tableau similaire avec un motif fixe (un damier, voir ici). J'ai un autre tableau, 800x600 des valeurs de masque. Lorsque le masque est égale à zéro, je veux copier le motif pixel de l'image en pixels. L'endroit où le masque n'est pas zéro, je veux quitter le pixel de l'image seule.

>>> image.shape
(800, 600, 3)
>>> chex.shape
(800, 600, 3)
>>> mask.shape
(800, 600)

Cela se sent comme il devrait fonctionner:

image[mask == 0,...] = chex

mais donne "ValueError: tableau n'est pas broadcastable pour corriger la forme".

Que dois-je utiliser pour copier chex les pixels en pixels de l'image où le masque est égale à zéro?

OriginalL'auteur Ned Batchelder | 2010-01-30