OpenCV中各函数解释

举个例子

import cv2
clicked =False

def onMouse(event,x,y,flags,param):
    global clicked
    if event == cv2.EVENT_LBUTTONUP:
        clicked=True

cameraCapture =cv2.VideoCapture(0)
cv2.namedWindow("MyWindow",0)
cv2.resizeWindow("MyWindow",640,480)
cv2.setMouseCallback("MyWindow",onMouse)

print "Showing camera feed.Click window or press any key to stop."

success,frame=cameraCapture.read()
while success and cv2.waitKey(1)==-1 and not clicked:
    cv2.imshow("MyWindow",frame)
    success,frame=cameraCapture.read()
cv2.destroyWindow("MyWindow")
cameraCapture.release()

一、namedWindow(const String,ing flag)

  Flag=0,表示按原图尺寸显示

  Flag=1,表示窗口可以自适应

二、waitKey()

  waitKey()与waitKey(0)表示无线等待,针对视频流来说,cv2.waitKey(0)表示只显示当前帧图像,相当于暂停

  waitKey(n)表示等待n毫秒关闭窗口,针对视频流来说,cv2.waitKey(1)表示延时1ms切换到下一帧

  当等待时间内无任何操作,等待结束返回-1

  如果等待时间内有输入字符那么返回该字符的ASCII值

e.g. while(waitKey(1)!='q'): 或者如上程序while waitKey(1)== -1:

  针对第一个:waitKey(1)表示延迟一秒;while waitKey(1):表示一直延迟;while(waitKey(1)!='q'):表示一直延迟直到键入q时

  针对第二个:前面同理;while waitKey(1)== -1:表示一直延迟,不键入字符。

三、VideoCapture()和read()

  cameraCapture=cv2.VideoCapture(0)

  success,frame = cameraCapture.read()

  VideoCapture(0)表示打开笔记本内置摄像头,还可以VideoCapture("../test.avi")

  read()函数表示按帧读取视频,success,frame是read()的两个返回值,success是布尔值——如果读取帧是正确的则返回True,如果文件读取到结尾则返回False,Frame表示的是每一帧的图像,是一个三维矩阵

  

posted @ 2019-07-24 17:33  CCxiao5  阅读(2380)  评论(0编辑  收藏  举报