zoukankan      html  css  js  c++  java
  • opencv

    推荐博客:https://blog.csdn.net/wwxy1995/article/details/79735283

    import cv2
     
    def make_photo():
        """使用opencv拍照"""
        cap = cv2.VideoCapture(0)  # 默认的摄像头
        while True:
            ret, frame = cap.read()
            if ret:
                cv2.imshow("capture", frame)  # 弹窗口
                # 等待按键q操作关闭摄像头
                if cv2.waitKey(1) & 0xFF == ord('q'):
                    file_name = "xieyang.jpeg"
                    cv2.imwrite(file_name, frame)
                    break
            else:
                break
     
        cap.release()
        cv2.destroyAllWindows()
     
     
    def make_video():
        """使用opencv录像"""
        cap = cv2.VideoCapture(0)  # 默认的摄像头
        # 指定视频代码
        fourcc = cv2.VideoWriter_fourcc(*"DIVX")
        out = cv2.VideoWriter('xieyang.avi', fourcc, 20.0, (640,480))
        while(cap.isOpened()):
            ret, frame = cap.read()
            if ret:
                out.write(frame)
                #
                cv2.imshow('frame',frame)
                # 等待按键q操作关闭摄像头
                if cv2.waitKey(1) & 0xFF == ord('q'):
                    break
            else:
                break
        cap.release()
        out.release()
        cv2.destroyAllWindows()
     
    if __name__ == '__main__':
        make_video()
    

      

    客户端

    import cv2
    import numpy
    import matplotlib.pyplot as plot
    import requests
    
    # 测试摄像头
    cap = cv2.VideoCapture(0)
    
    while(1):
        # get a frame
        ret, frame = cap.read()
        # show a frame
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    cap.release()
    cv2.destroyAllWindows()
    
    # 拍摄图片保存
    import cv2
    
    cap = cv2.VideoCapture(0)
    while(1):
        # get a frame
        ret, frame = cap.read()
        # show a frame
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            cv2.imwrite("test.jpeg", frame)
            break
    cap.release()
    cv2.destroyAllWindows()
    
    
    # 录制视频保存
    cap = cv2.VideoCapture(0)  # 默认的摄像头
    # 指定视频代码
    fourcc = cv2.VideoWriter_fourcc(*"DIVX")
    # print(fourcc)
    out = cv2.VideoWriter('xieyang.avi', fourcc, 20.0, (640,480))
    while(cap.isOpened()):
        ret, frame = cap.read()
        if ret:
            out.write(frame)
            print(len(frame))
            cv2.imshow('frame',frame)
            # 等待按键q操作关闭摄像头
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
        else:
            break
    cap.release()
    out.release()
    cv2.destroyAllWindows()
    
    
    # 上传图片
    files = {'file': open('fangjian2.jpeg', 'rb')}
    response  =requests.post('http://127.0.0.1:8000/test/', files=files)
    # response  =requests.post('http://127.0.0.1:8000/test/', data={"data":'sddggggh'}) form表单提交 ,也可以上传json
    print(response.text)
    
    
    #上传视频
    files = {'file': open('xieyang.avi', 'rb')}
    response  =requests.post('http://127.0.0.1:8000/test/', files=files)
    print(response.text)
    
    
    # 同步录制上传
    cap = cv2.VideoCapture(0)  # 默认的摄像头
    while (1):
        # get a frame
        ret, frame = cap.read()
        # show a frame
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        # 同步上传是有问题的,现在先不考虑这个了
        requests.post('http://127.0.0.1:8000/test/', data=frame.tobytes(),headers={"Content-Type":"multipart/form-data"})
    
    cap.release()
    cv2.destroyAllWindows()
    

      

    服务端

    from django.shortcuts import render,HttpResponse,redirect
    
    def test(request):
        
        # 接收上传的视频,这个是可以的
        file_obj = request.FILES.get('file')
        print(file_obj,type(file_obj))
        f = open( file_obj.name, 'wb')
        for chunk in file_obj.chunks():
            f.write(chunk)
        f.close()
        """
        # 不知道是不是post请求改变了数据的编码,在request.body中接收的bytes和发送的bytes并不一样,导致写入的文件不能读取
        file_obj=request.body
        print(file_obj,type(file_obj))
        print(22222)  # 这可以说明就只有一次连接
        f = open('test.jpeg', 'wb')
        f.write(file_obj)
        # for chunk in file_obj.chunks():
        #     f.write(chunk)
        """
        return HttpResponse(111)
    

     

    使用js调用摄像头:https://www.cnblogs.com/weixing/p/6555681.html 

  • 相关阅读:
    使用a标签制作tooltips
    使用editorconfig配置你的编辑器
    JointJS绘制流程图
    用highcharts展现你的数据
    css段落首字母下沉
    sklearn框架的系统学习
    numpy删除二维数据矩阵的行和列
    sklearn中机器学习算法评价指标
    sklearn调用逻辑回归算法
    sklearn调用多项式回归
  • 原文地址:https://www.cnblogs.com/perfey/p/9976977.html
Copyright © 2011-2022 走看看