liu 3 years ago
parent 393f64b360
commit 8f6cb56abd

@ -22,4 +22,5 @@ urlpatterns = [
path('', views.index,name='index'),
path('upload/', views.upload,name='upload'),
path('results/', views.results,name='results'),
path('camera/', views.camera,name="camera"),
]

@ -1,5 +1,7 @@
from django.shortcuts import render
from django.views import View
from paddle.dataset.image import cv2
from IROCMdjango import settings
from flask import request
@ -49,7 +51,49 @@ def upload(request):
print('其他请求')
return render(request, 'upload.html', {})
def camera(request):
if request.method == 'POST':
print('正在使用摄像头')
print("=============================================")
print("= 热键(请在摄像头的窗口使用) =")
print("= x: 拍摄图片 =")
print("= q: 退出 =")
print("=============================================")
print()
#os.system('python E:\workspace\PyCharm\http1\IROCMdjango\IROCM\camera.py')
new_name = 'upimg.jpg'
class_name = os.path.join(settings.MEDIA_ROOT, new_name)
# 摄像头
cap = cv2.VideoCapture(0)
flag = 1
num = 1
# 检测是否在开启状态
while (cap.isOpened()):
# 得到每帧图像
ret_flag, Vshow = cap.read()
cv2.imshow("Capture_Test", Vshow) # 显示图像
k = cv2.waitKey(1) & 0xFF # 按键判断
if k == ord('s'): # 键盘按下s键即保存
cv2.imwrite(class_name, Vshow)
print("success to save")
print("-------------------")
break
elif k == ord(' '): # 退出
break
# 释放摄像头
cap.release()
# 释放内存
cv2.destroyAllWindows()
str = predict_image(class_name)
print(str)
lstr = predict_info(str)
print(lstr)
# 返回
return render(request, 'results.html', {"data": str, "info": lstr})
else:
print('其他请求')
return render(request, 'camera.html', {})
import paddle
import numpy as np

@ -23,6 +23,7 @@ from IROCM import views
urlpatterns = [
path('',include('IROCM.urls')),
path('upload/',views.upload,name="upload"),
path('camera/', views.camera, name="camera"),
path('admin/', admin.site.urls),
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

After

Width:  |  Height:  |  Size: 108 KiB

@ -0,0 +1,112 @@
<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
<meta charset="utf-8">
<title>拍照上传 | 中医药药材识别系统</title>
<meta name="description" content="">
<meta name="author" content="">
<meta name="keywords" content="">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&display=swap" rel="stylesheet">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'css/jquery-ui.css' %}">
<link rel="stylesheet" href="{% static 'css/jquery.fancybox.min.css' %}">
<link rel="stylesheet" href="{% static 'css/font-awosome.css' %}">
<link rel="stylesheet" href="{% static 'flat-font/flaticon.css' %}">
<link rel="stylesheet" href="{% static 'icomoon/style.css' %}">
<link rel="stylesheet" href="{% static 'icomoon/demo-files/demo.css' %}">
<link rel="stylesheet" href="{% static 'css/ticker.min.css' %}">
<link rel="stylesheet" href="{% static 'css/owl.carousel.min.css' %}">
<link rel="stylesheet" href="{% static 'css/owl.theme.default.min.css' %}">
<link rel="stylesheet" href="{% static 'css/sm-core-css.css' %}">
<link rel="stylesheet" href="{% static 'css/sm-mint.css' %}">
<link rel="stylesheet" href="{% static 'css/sm-style.css' %}">
<link rel="stylesheet" href="{% static 'css/aos.css' %}">
<link rel="stylesheet" href="{% static 'css/animate.min.css' %}">
<link rel="stylesheet" href="{% static 'css/magnific-popup.css' %}">
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<link rel="shortcut icon" type="image/png" href="{% static 'img/favicon.jpg' %}">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<button class="scroll-top scroll-to-target" data-target="html"><i class="fas fa-angle-up scrollup-icon"></i></button>
<header class="header-area">
<div class="container">
<div class="row align-items-center">
<div class="col-4 col-md-3">
<div class="logo-wrapper"><a href="index.html"><img src="{% static 'img/logo.png' %}" alt=""></a></div>
</div>
<div class="col-8 col-md-9">
<div class="hexa-nav">
<div class="menu-wrapper">
<nav class="main-nav">
<input id="main-menu-state" type="checkbox" />
<label class="main-menu-btn" for="main-menu-state">
<span class="main-menu-btn-icon"></span>
</label>
<ul id="main-menu" class="sm sm-mint">
<li><a href={% url 'upload' %}>本地上传</a>
</li>
<li><a href={% url 'camera' %}>拍照上传</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="inner-hero">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="hero-content">
<h1>拍照上传</h1>
<ul>
<li>拍照上传 |</li>
<li>中医药药材识别系统</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="service-details">
<div class="container">
<div class="row">
<div class="col-md-12" height="20px">
<form margin-bottom="100px" action="/camera/" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<!-- 不知道为什么这里input file类型会导致显示不全 -->
<input type="submit" value="拍照上传"/>
</form>
</div>
</div>
</div>
</div>
<!-- footer -->
<div class="footer-area">
<div class="container">
</div>
</div>
<footer>
<div class="container">
<p>Copyright © 2022 All Rights Reserved By <a href="" target="blank">IROCM</a></p>
</div>
</footer>
</body>
</html>

@ -50,7 +50,9 @@
<input id="main-menu-state" type="checkbox" />
<label class="main-menu-btn" for="main-menu-state"><span class="main-menu-btn-icon"></span></label>
<ul id="main-menu" class="sm sm-mint">
<li><a href={% url 'upload' %}>服务</a>
<li><a href={% url 'upload' %}>本地上传</a>
</li>
<li><a href={% url 'camera' %}>拍照上传</a>
</li>
</ul>
</nav>
@ -67,7 +69,7 @@
<div class="hero-content">
<h1>欢迎使用</h1>
<ul>
<li>主页</li>
<li>主页 |</li>
<li>中医药药材识别系统</li>
</ul>
</div>

@ -51,7 +51,9 @@
<input id="main-menu-state" type="checkbox" />
<label class="main-menu-btn" for="main-menu-state"><span class="main-menu-btn-icon"></span></label>
<ul id="main-menu" class="sm sm-mint">
<li><a href={% url 'upload' %}>服务</a>
<li><a href={% url 'upload' %}>本地上传</a>
</li>
<li><a href={% url 'camera' %}>拍照上传</a>
</li>
</ul>
</nav>
@ -68,7 +70,7 @@
<div class="hero-content">
<h1>识别结果</h1>
<ul>
<li>识别结果</li>
<li>识别结果 |</li>
<li>中医药药材识别系统</li>
</ul>
</div>

@ -53,7 +53,9 @@
<span class="main-menu-btn-icon"></span>
</label>
<ul id="main-menu" class="sm sm-mint">
<li><a href={% url 'upload' %}>服务</a>
<li><a href={% url 'upload' %}>本地上传</a>
</li>
<li><a href={% url 'camera' %}>拍照上传</a>
</li>
</ul>
</nav>
@ -68,9 +70,9 @@
<div class="row">
<div class="col-md-12">
<div class="hero-content">
<h1>图像上传</h1>
<h1>本地上传</h1>
<ul>
<li>图像上传</li>
<li>本地上传 |</li>
<li>中医药药材识别系统</li>
</ul>
</div>
@ -82,7 +84,6 @@
<div class="container">
<div class="row">
<div class="col-md-12" height="20px">
<form margin-bottom="100px" action="/upload/" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<!-- 不知道为什么这里input file类型会导致显示不全 -->

Loading…
Cancel
Save