一些小细节代码笔记汇总

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可以统一处理这些差异。

相关推荐
果霸大叔1 分钟前
AI 网关第 10 篇:协议无关层——一个请求如何被认出、翻译、透传
人工智能
adinnet20262 分钟前
企业碳资产管理:从碳盘查到碳交易,把排放理清
人工智能·深度学习·自动化
林墨聊AIGC2 分钟前
AI分镜模板:一键生成高效短剧视觉流程
人工智能·ai作画·aigc·音视频·ai写作
Pocker_Spades_A2 分钟前
论文精读(十):面向具身人工智能的物体目标导航综述:从“找东西“到启元机器人的导航基础能力
人工智能·机器人
whyutianict_vv3 分钟前
AI 大模型技术架构解析:从推理链路到训练流程
人工智能·ai·架构·开发
一根会思考芦苇4 分钟前
王阳明五百年前的知行合一,能解决今天的 AI 对齐难题吗?
人工智能
方方洛5 分钟前
ai-agent教程-12-生产部署
人工智能·llm·agent
SDWAN_Cheap8 分钟前
AI Agent的“自主攻击”时代已经来了?
人工智能·网络安全
企业解惑小助手8 分钟前
企业 AI 工具泄密怎么防护整体方案设计|需求拆解与落地架构
人工智能·架构·域智盾
程序员JerrySUN10 分钟前
Jetson Edge AI 实战05:Secure Boot 到底在保护什么?PKC、SBK、Fuse 与可信启动链一次讲清【视频讲解】
arm开发·人工智能·安全·计算机视觉·目标跟踪·音视频