一些小细节代码笔记汇总

Python

cv2抓取摄像头图片保存到本地

python 复制代码
import cv2
import datetime, os

savePath = "E:/Image/"

if not os.path.exists(savePath):
    os.makedirs(savePath)

cap = cv2.VideoCapture(0)
capture = False

if not cap.isOpened():
    print("无法打开摄像头")
    exit()

while True:
    ret, frame = cap.read()
    
    if not ret:
        print("无法接收帧 (stream end?). Exiting ...")
        break

    cv2.imshow('Image', frame)
    current_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S_%f")
    if capture:
        cv2.imwrite(os.path.join(savePath, current_time + ".jpg"), frame)
    
    key = cv2.waitKey(1) & 0xFF
    # 按下'q'键退出循环
    if key == ord('q'):
        break
    elif key == ord('s'):
        print("开始抓取图片")
        capture = True

cap.release()
cv2.destroyAllWindows()

cv2.waitKey(1) & 0xFF的作用是:

  • cv2.waitKey(1):等待1毫秒,检查是否有键盘输入。如果有输入,则返回按键的ASCII码值;如果没有输入,则返回-1。
  • & 0xFF:通过按位与操作,将返回值的高位清零,只保留低8位。这是因为在某些系统上,cv2.waitKey可能返回一个大于8位的整数,而我们只关心低8位的ASCII码值。

这样做的目的是确保代码在不同平台上都能正确处理键盘输入。例如,在Windows和Linux系统上,cv2.waitKey的返回值可能有所不同,通过& 0xFF可以统一处理这些差异。

相关推荐
说私域15 分钟前
基于开源AI智能客服、AI智能名片与S2B2C商城小程序的新社群用户进化策略研究
人工智能·小程序
Dream Algorithm18 分钟前
价格在走盘整,但是头寸持仓量增加说明什么
笔记
robator35 分钟前
label-studio 使用机器学习后端进行预标注
人工智能·机器学习
小和尚同志1 小时前
国产终端编码神器,编程 CLI 大善人——IFlow CLI
人工智能·aigc
Radan小哥2 小时前
Docker学习笔记—day007
笔记·学习·docker
Rsingstarzengjx2 小时前
PS 笔记1
笔记
PNP Robotics2 小时前
PNP机器人上海宝山智能机器人年会发表机器人10年主题演讲演讲
人工智能·python·机器人
㱘郳2 小时前
软考软件设计师笔记
笔记·软件工程
嵌入式学习者。2 小时前
Eplan自学笔记1
笔记
沫儿笙2 小时前
abb焊接机器人保护气体省气设备
人工智能·机器人