有效的方法来了解图像中的任何像素是否为白色?

时间:2015-11-20 14:26:51

标签: python opencv

所以基本上我试图使用OpenCV-Python进行运动检测。我使用this教程来完成此操作,这是我的代码。

import cv2

def diffImg(t0, t1, t2):
    d1 = cv2.absdiff(t2, t1)
    d2 = cv2.absdiff(t1, t0)
    return cv2.bitwise_and(d1, d2)


cap = cv2.VideoCapture(0)

t = cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2GRAY)
tp = cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2GRAY)
tpp = cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2GRAY)

while cap.isOpened():
    img = cv2.cvtColor(cap.read()[1], cv2.COLOR_BGR2GRAY)
    img2 = diffImg(t,tp,tpp)

cv2.imshow("Motion", img2)
t=tp
tp=tpp
tpp=img

key = cv2.waitKey(10)

if key == 27 :
    cv2.destroyAllWindows()
    break

我想在有动作检测时在控制台上打印。 当存在运动时,输入图像中存在白色像素。 但我不知道如何在输入图像中找到白色像素。 任何人都可以告诉我如何找到diffImg返回的图像中是否有白色像素?

1 个答案:

答案 0 :(得分:1)

您可以查看OpenCV的countNonZero函数。

Baqir Khan提供的示例:

if cv2.countNonZero(img2) > 29700: 
    print("Motion") 
else: 
    print("No Motion")