如何解决cpanel 中的 OpenCv videoCapture从应用程序收到不完整的响应
这里我调用 Videocamera 打开摄像头,然后返回streaminghttpresponse,然后调用 gen(cam)。现在我面临两个问题。我想存储 100 张用户图像并返回到另一个屏幕。这里这段代码在本地工作正常,但是当我将它上传到服务器时,它给出错误从应用程序收到的不完整响应,第二个问题是当计数 == 10 时将呈现到另一个屏幕
def getImages(request):
global postReq
postReq = request
print(request)
global userRequest
global userFaceName
userFaceName = request.POST['name']
print(userFaceName)
userRequest = request.user.pk
print(userRequest)
try:
cam = VideoCamera()
print("hello check")
return StreamingHttpResponse(gen(cam),content_type="multipart/x-mixed-replace;boundary=frame")
except:
print("killed")
pass
return redirect('imagess')
class VideoCamera():
def __init__(self):
global count
print("video camera")
self.video = cv2.VideoCapture(0)
print("video")
(self.grabbed,self.frame) = self.video.read()
threading.Thread(target=self.update,args=()).start()
def __del__(self):
print("destriy")
self.video.release()
def get_frame(self):
face_id=1
image = self.frame
# face_detector = cv2.CascadeClassifier('C:\\Users\\abbas\\Desktop\\final
try\\FYP\\isight\\Application\\haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
# faces = face_detector.detectMultiScale(gray,1.3,5)
# for (x,y,w,h) in faces:
# cv2.rectangle(gray,(x,y),(x+w,y+h),(255,0),2)
# global count
# count = count + 1
# face = cv2.resize(image,(400,400))
# face = cv2.cvtColor(face,cv2.COLOR_BGR2GRAY)
# writePic = cv2.imwrite("static/pdfbook/images/User." + str(face_id) + '.' + str(count)
+ ".jpg",gray[y:y+h,x:x+w])
# c = 'C:\\Users\\abbas\\Desktop\\final try\\FYP\\isight\\static\\pdfbook\\images\\' +
"User." + str(face_id) + '.' + str(count) + ".jpg"
# Image.objects.create(User=User.objects.get(id=userRequest),name = userFaceName,imagestore = c )
# print(count)
# if cv2.waitKey(100) & 0xFF == ord('q'):
# self.video.release()
# # If image taken reach 100,stop taking video
这里当计数 == 100 我想渲染到另一个视图但 deo 到流 httpresponse 我没有渲染
# elif count==100:
# faceNumberEnd=FaceName.objects.all().count()
# faceNumberEnd = faceNumberEnd + 1
# self.video.release()
# self.stopped = True
# global postReq
# FaceName.objects.create(User=User.objects.get(id=userRequest),name= userFaceName,ids
#= faceNumberEnd)
# return
_,jpeg = cv2.imencode('.jpg',gray)
return jpeg.tobytes()
def update(self):
while True:
(self.grabbed,self.frame) = self.video.read()
def gen(camera):
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。