Python openCV阈值负值

Python openCV阈值负值,python,opencv,numpy,Python,Opencv,Numpy,我试图计算运动光流,我试图通过阈值较小的值来减少噪声。在计算运动流时,我也会得到负值,我希望保留这些负值,但一旦应用阈值,这些负值就会被丢弃 我曾经想过用绝对值来达到这个目的,但是,我怎么才能找回我的底片呢 此外,我正在使用numpy阵列,如果这样有帮助的话: flow = cv2.calcOpticalFlowFarneback(frameGray, frame1Gray, 0.5,1,3,15,3,5,1) thresh_flow = cv2.threshold(np.absolute(f

我试图计算运动光流,我试图通过阈值较小的值来减少噪声。在计算运动流时,我也会得到负值,我希望保留这些负值,但一旦应用阈值,这些负值就会被丢弃

我曾经想过用绝对值来达到这个目的,但是,我怎么才能找回我的底片呢

此外,我正在使用numpy阵列,如果这样有帮助的话:

flow = cv2.calcOpticalFlowFarneback(frameGray, frame1Gray, 0.5,1,3,15,3,5,1)

thresh_flow = cv2.threshold(np.absolute(flow), 5, 255, cv2.THRESH_TOZERO)

Numpy提供了非常强大的功能。其中之一是使用布尔数组进行索引。您可以将与条件匹配的元素指定给某个值,该值似乎就是您想要的值。比如说,

threshold = 2
flow[np.abs(flow) < threshold] = 0
应用此操作的结果将是:

[0  2  3]
[0 -2 -3]
它正确地去除了大小较小的正负元素,但保留了负元素的符号

[0  2  3]
[0 -2 -3]