Como posso iterar pixels de imagem de maneira mais rápida em python?

Eu quero modificar uma imagem em tons de cinza de uma maneira que eu possa alterar os valores de pixel para preto para a metade superior da imagem. Eu certamente posso fazer isso iterando da maneira usual assim:

for i in range(0,rows):
  for j in range(0,cols):
    if(condition)
      image[i,j] = 0;

Mas isso é muito lento, pois tenho que fazer o processamento de vídeo. Eu posso ver que tenho que usarImage.point(), mas não tenho certeza de como implementá-lo. Alguém pode me ajudar nisso?

questionAnswers(2)

yourAnswerToTheQuestion