有效地替换 R、G、B 平面中的像素值 python-openCV
Efficiently replacing pixel values in R,G,B planes python-openCV
我正在尝试用给定的标量值替换 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。空间位置将在所有切片上广播,并将每个 (x,y)
位置的第一个切片设置为 scalar1
,下一个切片设置为相同空间位置的 scalar2
,最后 scalar3
对于最后一个切片,相同的空间位置。
我正在尝试用给定的标量值替换 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。空间位置将在所有切片上广播,并将每个 (x,y)
位置的第一个切片设置为 scalar1
,下一个切片设置为相同空间位置的 scalar2
,最后 scalar3
对于最后一个切片,相同的空间位置。