Replace image pixel color on condition in Python

后端 未结 2 665
醉话见心
醉话见心 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:05

    For one channel image, we can do as follow

    out_val = 0
    gray = cv2.imread("colour.png",0)
    
    gray[gray<value] = out_val
    
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题