Python消除图像中的颜色

Python消除图像中的颜色,python,opencv,image-processing,Python,Opencv,Image Processing,我目前正在开发一个python程序,它用openCV以每秒约20帧的速度记录我屏幕的一部分(800x600像素)。经过一些处理后,结果显示在另一个窗口中,但我很难理解处理部分: 我想消除各种灰色。这意味着我希望在三个RGB值相等(或类似)的情况下将所有像素变成黑色。似乎每个像素的循环速度都很慢,无法处理20fps的目标。该主题通过使用遮罩减少了输入的颜色,但对消除灰色无效 有没有一个好方法可以做到这一点 您可以使用numpy的diff功能来查找RGB元素之间的差异,并设置阈值以使灰色像素变黑 #

我目前正在开发一个python程序,它用openCV以每秒约20帧的速度记录我屏幕的一部分(800x600像素)。经过一些处理后,结果显示在另一个窗口中,但我很难理解处理部分:

我想消除各种灰色。这意味着我希望在三个RGB值相等(或类似)的情况下将所有像素变成黑色。似乎每个像素的循环速度都很慢,无法处理20fps的目标。该主题通过使用遮罩减少了输入的颜色,但对消除灰色无效


有没有一个好方法可以做到这一点

您可以使用
numpy
diff
功能来查找RGB元素之间的差异,并设置阈值以使灰色像素变黑

# a: nxnx3 numpy array
thresh = 2
indices = np.where(np.sum(np.abs(np.diff(a, axis=2)), axis=2) < 1)
a[indices[0], indices[1]] = [0, 0, 0]
#a:nx3 numpy数组
thresh=2
指数=np,其中(np.sum(np.abs(np.diff(a,轴=2)),轴=2)<1)
a[指数[0],指数[1]=[0,0,0]

使用HSV。这可以删除所需范围(inRange)内的任何颜色。另外,张贴你正在处理的图像。使用HSV是一个非常好的主意。我没有想到这一点,但这对我来说是一个完美的解决方案,谢谢。不幸的是,我不能发布图片,因为这是我正在处理的视频片段