我正在Python中使用OpenCV。我有一个图像,我想要做的是将BGR值[0,0,255]的所有像素设置为[0,255,255]。OpenCV:将特定BGR值的所有像素设置为另一个BGR值
我问如何色调分离的图像previous question,并从答案,我学到了索引与索引的数组,为前: 图像[图像> 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
是否有处理这个问题的有效途径?
我需要Python中的一个答案,希望能使用NumPy提供的某些东西,而不是C++,所以它不是重复的。 – steve8918 2012-07-11 13:55:49
嗨,你想创建一个图像与所有元素[0,255,255]或只是改变图像中的所有元素值[0,0,255]到[0,255,255]? – 2012-07-11 14:04:37
嗨,我想改变图像中的所有元素值[0,0,255]到[0,255,255],谢谢 – steve8918 2012-07-11 14:11:53