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

标签 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

有人可以建议一种更有效的方法吗?

最佳答案

是。尝试这样做:

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/

相关文章:

python - Python 类中的作用域

java - 将 Excel 文档转换为二维数组

JavaScript 数组推送不起作用

python-3.x - 使用ROS Kinetic和Python3忽略cmake参数构建cv_bridge软件包

python - Lambda 函数无法正常工作

python - 正则表达式——不同字符串相同匹配

python - 我如何只读取图像的一部分而不输入其他图像?

Python OpenCV - 在二值图像中查找黑色区域

python - 我可以异步执行 "apply"中的函数到 pandas 数据帧吗?

javascript - 单击一次即可按升序和降序对对象数组进行排序