zoukankan      html  css  js  c++  java
  • python调用摄像头拍照并保存

    import cv2
    import os
    #引入库
     
    print("=============================================")
    print("=  热键(请在摄像头的窗口使用):             =")
    print("=  z: 更改存储目录                          =")
    print("=  x: 拍摄图片                              =")
    print("=  q: 退出                                  =")
    print("=============================================")
    #提醒用户操作字典
     
    class_name = input("请输入存储目录(python安装目录下才行,如:d:pythonpy_image):")
    while os.path.exists(class_name):
        class_name = input("目录已存在!请输入存储目录:")
    os.mkdir(class_name)
    #存储
     
    index = 1
    cap = cv2.VideoCapture(0 + cv2.CAP_DSHOW)
    width = 640
    height = 480
    w = 360
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
    crop_w_start = (width-w)//2
    crop_h_start = (height-w)//2
    print(width, height)
    #设置特定值
     
    while True:
        ret, frame = cap.read()
       
        frame = frame[crop_h_start:crop_h_start+w, crop_w_start:crop_w_start+w]
        #没理解?
     
        frame = cv2.flip(frame,1,dst=None)
        #镜像显示
        cv2.imshow("capture", frame)
        #显示
     
        input = cv2.waitKey(1) & 0xFF
        if input == ord('z'):
            class_name = input("请输入存储目录:")
            while os.path.exists(class_name):
                class_name = input("目录已存在!请输入存储目录:")
            os.mkdir(class_name)
        #存储
     
        elif input == ord('x'):
            cv2.imwrite("%s/%d.jpeg" % (class_name, index),
                        cv2.resize(frame, (224, 224), interpolation=cv2.INTER_AREA))
            print("%s: %d 张图片" % (class_name, index))
            index += 1
        #?
        if input == ord('q'):
            break
        #退出
            
    cap.release()
    cv2.destroyAllWindows()
        #关闭窗口
    

      

  • 相关阅读:
    VS 2010 制作 Windows Service 安装包
    Postback 之后保持浏览器滚动条的位置
    Stream之list转map及问题解决
    List.sort()排序功能
    The content of element type "resultMap"
    MyBatis 一对一,一对多,多对多
    Java Array、List、Set互相转化
    Java流(Stream)操作实例-筛选、映射、查找匹配
    JAVA系列笔记十八之nohup实现后台运行程序
    VSCode汇总
  • 原文地址:https://www.cnblogs.com/xtmp/p/14033604.html
Copyright © 2011-2022 走看看