我试图用给定的标量值替换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
有人可以建议一种更有效的方法吗?
最佳答案
是。尝试这样做:
image[coords] = np.array([scalar1,scalar2,scalar3])
numpy
广播FTW。空间位置将在所有 slice 上广播,并将每个(x,y)
位置的第一个 slice 设置为scalar1
,将下一个 slice 设置为相同空间位置的scalar2
,最后将最后一个 slice 的scalar3
设置为相同的空间位置。
关于python - 在R,G,B平面中有效替换像素值python-openCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294061/