2014-01-20 41 views
0

我一直在试图显示来自灰度我的笔记本电脑的网络摄像头摄像头输入,我已经用下面的代码完成它:显示灰度摄像头输入的蟒蛇与OpenCV的

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'中,并再次以灰度重新加载并显示该灰度图像。有没有什么方法可以直接读取灰度的相机画面,而不是经历这一切。提前致谢。

回答

3

哇,什么乱七八糟;)

你只是想:

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