使用opencv在python中以灰度显示相机输入

时间:2014-01-20 17:15:57

标签: python opencv grayscale

我一直试图以灰度显示笔记本电脑网络摄像头的相机,我已使用以下代码完成了该操作:

    import cv2
    import numpy as np
    clicked = False
    def onMouse(event, x, y, flags, param):
        global clicked
        if event == cv2.cv.CV_EVENT_LBUTTONUP:
            clicked = True

    cv2.namedWindow('image capture', cv2.WINDOW_NORMAL)
    cv2.setMouseCallback('image capture', onMouse)
    #initialize the camera object with VideoCapture
    camera = cv2.VideoCapture(0)
    sucess, frame = camera.read()
    cv2.imwrite('snapshot.png', frame)
    gray = cv2.imread('snapshot.png', cv2.IMREAD_GRAYSCALE)
    while sucess and cv2.waitKey(1) == -1 and not clicked:
        cv2.imwrite('snapshot.png', frame)
        gray = cv2.imread('snapshot.png', cv2.IMREAD_GRAYSCALE)
        cv2.imshow('image capture', gray)
        sucess, frame = camera.read()

    cv2.imwrite('snapshot.png', frame)
    print 'photo taken press any key to exit'
    cv2.waitKey()
    cv2.destroyAllWindows()

我已经完成的工作是将框架保存在' snapshot.png'并再次以灰度重新加载并显示该灰度图像。是否有任何方法可以直接读取灰度相机框架而不是经历所有这些混乱。提前谢谢。

1 个答案:

答案 0 :(得分:4)

哇,真是一团糟;)

你只想要:

gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY )