使用python语言和django框架,获取摄像头并在网页显示灰度内容的代码
时间: 2023-06-08 19:06:39 浏览: 142
以下是使用python语言和django框架获取摄像头并在网页显示灰度内容的代码示例:
在views.py里定义一个函数用于获取摄像头图像:
```python
import cv2
def gen_frames():
camera = cv2.VideoCapture(0)
while True:
success, frame = camera.read()
if not success:
break
else:
# 转换为灰度图像
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 将帧以视频流的形式输出
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + cv2.imencode('.jpg', gray_frame)[1].tobytes() + b'\r\n')
```
在urls.py中定义一个URL映射该函数:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('video_feed/', views.video_feed, name='video_feed')
]
```
在模板index.html中添加video标签来显示图像:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Camera</title>
</head>
<body>
<h1>My Camera</h1>
<img src="{% url 'video_feed' %}" width="480" height="360">
</body>
</html>
```
在views.py中定义一个函数用于呈现模板和向其中添加video_feed URL:
```python
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
def video_feed(request):
return StreamingHttpResponse(gen_frames(), content_type='multipart/x-mixed-replace; boundary=frame')
```
这样,在服务器端运行Django项目后,即可在网页中显示从摄像头获取的灰度图像。
阅读全文