我正在使用Python的OpenCV。 我有一张图片,想要做的是将所有BGR值为[0, 0, 255]的像素设置为[0, 255, 255]。
我在之前提出了一个问题,从回答中了解到可以使用索引数组进行分色处理,例如:
image[image>128] = 255
我理解这个方法的工作原理,因为image>128将返回满足条件的多维索引数组,然后我将此数组应用于图像并将其设置为255。 然而,我对如何将其扩展到数组的值感到困惑。
我尝试了以下方法:
但它无法正常工作,出现了错误:
我在之前提出了一个问题,从回答中了解到可以使用索引数组进行分色处理,例如:
image[image>128] = 255
我理解这个方法的工作原理,因为image>128将返回满足条件的多维索引数组,然后我将此数组应用于图像并将其设置为255。 然而,我对如何将其扩展到数组的值感到困惑。
我尝试了以下方法:
red = np.array([0, 0, 255])
redIndex = np.where(np.equal(image, red))
image[redIndex] = np.array([0, 255, 255])
但它无法正常工作,出现了错误:
ValueError: array is not broadcastable to correct shape
有没有一种高效的方式来处理这个问题?