def webcam_feed(): cap = cv2.VideoCapture(0) face_mode = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml") while True: ret, frame = cap.read() gray_face=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) image = cv2.resize(gray_face, (640, 480)) _, buffer = cv2.imencode('.jpg', image) gray_face = buffer.tobytes() yield (b'--gray_face\r\n' b'Content-Type: image/jpeg\r\n\r\n' + gray_face + b'\r\n') cap.release() def webcam_view(request): return StreamingHttpResponse(webcam_feed(), content_type="multipart/x-mixed-replace;boundary=gray_face")为何不能显示灰度图片
时间: 2023-06-10 10:03:50 浏览: 233
vc6.0_webcam_control.rar_site:www.pudn.com
可能是因为在代码中的`webcam_feed()`函数中,将灰度图像的像素值转换为字节字符串(buffer)之前,没有进行通道数的处理。灰度图像只有一个通道,而在转换为字节字符串之前,需要将它从单通道转换为三通道(BGR)以满足图像编码的要求。可以在代码中加入一行如下的代码来解决这个问题:
```
image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
```
这行代码将灰度图像转换为BGR图像,进而和其他的彩色图像一样进行编码和传输。
阅读全文