I want to modify a grayscale image in a manner so that I can change the pixel values to black for the top half of the image. I can certainly do this by iterating over in the usual manner like this:
for i in range(0,rows):
for j in range(0,cols):
if(condition)
image[i,j] = 0;
But this is quite slow as I have to do video processing. I can see that I have to use Image.point(), but I am not sure how to implement it. Can someone help me out in this?
This will be much faster if you convert the PIL image to a numpy array first. Here’s how you can zero all the pixels with a value below 10:
Or, as you stated in your comment, here’s you’d black out the top half of the image:
Finally, since you’re doing video processing, notice that you don’t have to loop over the individual frames either. Let’s say you have ten frames of 4×4 images: