所以基本上,我想迭代我的所有像素,如果它们正在使用范围,则将其RGB值更改为白色,否则更改为黑色。
我已经看过几个使用掩码的例子,但我对如何使用掩码来比较RGB值感到困惑。 我的范围是这样的
min_YCrCb = np.array([0,133,77],np.uint8)
max_YCrCb = np.array([255,173,127],np.uint8)
首先,我在YCrCb中拥有我的形象img。如何创建一个遮罩,以便它可以看到RGB是否在范围内,一旦完成,我该如何将它们设置为黑白?
答案 0 :(得分:1)
我认为inRange方法就是您所需要的。
因此,在您的示例中,您可以使用:
ans
对于cv_input中的每个像素,如果其值在给定范围内,则将其设置为255(全1),否则为0.如果需要反转,则可以使用# Keep in mind that OpenCV stores things in BGR order, not RGB
lowerBound = cv.Scalar(0, 133, 770)
upperBound = cv.Scalar(255, 173, 127)
# this gives you the mask for those in the ranges you specified
cv.InRange(cv_input, lowerBound, upperBound, cv_output);
方法。 / p>
Not