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()
        #关闭窗口
    

      

  • 相关阅读:
    7月6日实习日志
    7月5日实习日志
    7月4日实习日志
    emacs设置tab缩进
    {{badmatch, {error, eexist}}
    windows下使用emacs+plink远程编辑erlang文件
    cowboy跨域请求处理
    erlang的base64解码问题
    Erlang-VM节点启动名冲突问题
    laya在微信小游戏中加载BitmapFont失效的问题
  • 原文地址:https://www.cnblogs.com/xtmp/p/14033604.html
Copyright © 2011-2022 走看看