首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当摄像头检测到特定的颜色后,停止它

当摄像头检测到特定的颜色后,停止它
EN

Stack Overflow用户
提问于 2016-04-14 09:15:32
回答 1查看 612关注 0票数 1

我写了一个检测浅粉色的代码。现在,我想添加一个代码,这将自动关闭摄像头后,它检测到浅粉色。你能帮我弄一下这个吗?下面是编辑的代码:

代码语言:javascript
复制
import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):
    _, frame = cap.read()

    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    lower_pink = np.array([160,50,50])
    upper_pink = np.array([180,255,255])

    mask = cv2.inRange(hsv, lower_pink, upper_pink)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame,frame, mask= mask)
    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)
    break

if(cv2.countNonZero(mask) > 0):
    print("FOUND")
    raise SystemExit

cv2.destroyAllWindows()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-14 12:54:53

具有无条件的break (并且没有可能的continue)的循环没有意义,因为它在语义上是没有循环的。

测试必须在循环中,因为您希望将其应用于每个捕获的图像,直到您命中第一个图像时,其中包含足够的粉红色。然后break循环。不要在这里退出程序,因为循环之后的清理代码就不再执行了。无论如何,通过提高SystemExit退出是有点奇怪的,这就是sys.exit()函数的目的。

代码语言:javascript
复制
import cv2
import numpy as np

def main():
    lower_pink = np.array([160, 50, 50])
    upper_pink = np.array([180, 255, 255])
    threshold = 100  # TODO Adapt to your needs.
    cap = cv2.VideoCapture(0)

    while True:
        _, frame = cap.read()
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, lower_pink, upper_pink)
        masked = cv2.bitwise_and(frame, frame, mask=mask)
        cv2.imshow('frame', frame)
        cv2.imshow('mask', mask)
        cv2.imshow('masked', masked)
        # if cv2.countNonZero(mask) > threshold:
        #     print('FOUND')
        #     break
        print(cv2.countNonZero(mask))
        # 
        # Wait for escape key.
        # 
        if cv2.waitKey(500) == 27:
            break

    cv2.destroyAllWindows()


if __name__ == '__main__':
    main()

实际的阈值测试被注释掉,取而代之的是打印掩码的像素计数,这样您就可以确定哪个值适合您的需要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36618636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档