微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

所以写了这段代码来打开视频的网络摄像头,我想保存摄像头打开时的日志,但文件不会停止更新

如何解决所以写了这段代码来打开视频的网络摄像头,我想保存摄像头打开时的日志,但文件不会停止更新

所以我是 python 的新手,但我想使用 cv2 打开网络摄像头,我还试图保存日志,就像打开网络摄像头时一样,所以我使用 file.txt 来存储,所以我使用日期时间并保存它进入 file.txt 但问题是文件在我关闭程序之前不会停止更新。请帮忙

from flask import Flask,render_template,request
import cv2
import datetime

app=Flask(__name__)

@app.route("/")
def main():
    return render_template('app.html')

@app.route("/calculate",methods=['POST'])
def webcam():
    import cv2

    cap = cv2.VideoCapture(0)

    # Check if the webcam is opened correctly
    if not cap.isOpened():
        raise IOError("Cannot open webcam")

    while True:
        
        ret,frame = cap.read()
        frame = cv2.flip(frame,1)
        frame = cv2.resize(frame,None,fx=1,fy=1,interpolation=cv2.INTER_AREA)
        

        # describe the type of font
        # to be used.
        font = cv2.FONT_HERShey_SIMPLEX
        
        #writing text
        cv2.putText(frame,"Press esc to quit",(50,50),cv2.FONT_HERShey_SIMPLEX,1,(199,21,133))
        
        cv2.imshow('Webcam',frame)
        
        #storing logs in a file
        with open("logs.txt",'w') as myfile:
            ct=datetime.datetime.Now()
            myfile.write(str(ct))
             
        
        c = cv2.waitKey(1) #add 0 for frame pic when you stroke any key
        if c == 27:
            break
        
            
    
    cap.release()
    cv2.destroyAllWindows()
    return render_template("app.html")

解决方法

问题出在您记录的位置...当您将记录代码放在 while True 语句下时,它会一直记录直到循环中断。

cap = cv2.VideoCapture(0) 我猜这一行是打开网络摄像头的那一行,因为在那之后你正在检查网络摄像头是否成功打开......为什么不在 like 之后移动日志代码

# Check if the webcam is opened correctly
if not cap.isOpened():
    raise IOError("Cannot open webcam")

#storing logs in a file
with open("logs.txt",'w') as myfile:
    ct=datetime.datetime.now()
    myfile.write(str(ct))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。