有效地替换R,G,B平面中的像素值python-openCV

时间:2015-03-27 05:42:57

标签: python arrays opencv image-processing

我试图用给定的标量值替换python-OpenCV图像中的R,G和B值。我使用np.where()找到了这个替换的x和y坐标。我希望这些位置被R,G和B平面中给定的标量值替换。 目前,我这样做:

    b=image[:,:,0]
    g=image[:,:,1]
    r=image[:,:,2]
    b[coords]=scalar1
    g[coords]=scalar2
    r[coords]=scalar3
    image[:,:,0]=b
    image[:,:,1]=g
    image[:,:,2]=r

有人能建议更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

是。试着这样做:

image[coords] = np.array([scalar1,scalar2,scalar3])

numpy播放FTW。将在所有切片上广播空间位置,并将每个(x,y)位置的第一个切片设置为scalar1,将相同空间位置的下一个切片设置为scalar2,最后{{ 1}}用于最后一个切片,相同的空间位置。