Replace image pixel color on condition in Python

后端 未结 2 702
醉话见心
醉话见心 2021-01-21 12:46

I have an RGBA image where I have to find if any pixel has red value < 150 and to replace such pixels to black. I am using following code for this:

import nu         


        
2条回答
  •  遇见更好的自我
    2021-01-21 13:17

    Use np.where with the mask of comparison against the threshold -

    img = np.asarray(img)
    imgarr = np.where(img[...,[0]]<150,(0,0,0,255),img)
    

    We are using img[...,[0]] to keep the number of dims as needed for broadcasted assignment with np.where. So, another way would be to use img[...,0,None]<150 to get the mask that keeps dims.

提交回复
热议问题