利用python开启自己的摄像头

今天有个朋友介绍做一个车牌识别系统,那么首先呢就是开启摄像头是吧,嘻嘻嘻

直接上源码

# -*- coding:utf8 -*-

# 导入cv2库
import cv2 as cv

 # 打开摄像头
cap = cv.VideoCapture(0) 

while (True):

	# 开始用摄像头读数据,返回hx为true则表示读成功,frame为读的图像
    hx, frame = cap.read() 
    
    # 如果hx为Flase表示开启摄像头失败,那么就输出"read vido error"并退出程序
    if hx is False: 
    	# 打印报错
        print('read video error')
        # 退出程序
        exit(0)
     
    # 显示摄像头图像,其中的video为窗口名称,frame为图像
    cv.imshow('video', frame)
    
    # 监测键盘输入是否为q,为q则退出程序
    if cv.waitKey(1) & 0xFF == ord('q'):       # 按q退出
        break

# 释放摄像头
cap.release()

# 结束所有窗口
cv.destroyAllWindows()

  • cv.waitKey(1):这个表示每一秒(1的参数的作用)监测一下键盘上的输入,并转化成二进制
  • & : 运算符,进行AND运算
  • 0xFF:转化为二进制为0b111111111
  • ord():作用是将()里面的字符转化成 ASCII 数值,这里是将q转换为 ASCII 数值,也就是0b01110001
  • 总体效果:如果用户在莫一秒内按下“q”键盘按键,那么q的waitKeyre返回DECIMAL VALUE是113。在二进制中,它表示为0b01110001。接下来,执行AND运算符,两个输入分别是0b01110001和0xFF(0b111111111)。0b01110001和0b11111111做AND运算=0b01110001。确切的结果是DECIMAL VALUE的q。其次,将左表达式0b01110001的值与ord(‘q’)进行比较。显然,这些值与另一个值相同,就会执行break跳出循环