<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>柑橘病虫害检测</title> <style> body { font-family: Arial, sans-serif; max-width: 600px; margin: 40px auto; padding: 20px; background: #f5f5f5; } .upload-area { border: 2px dashed #4CAF50; border-radius: 8px; padding: 30px; text-align: center; cursor: pointer; background: #fff; margin-bottom: 20px; } #preview, #result-img { max-width: 100%; margin-top: 20px; display: none; } #detect-btn { background: #4CAF50; color: white; padding: 10px 20px; border: none; border-radius: 4px; cursor: pointer; display: none; } #result { margin-top: 20px; padding: 20px; background: #fff; border-radius: 8px; display: none; } </style> </head> <body> <h1 style="text-align: center; color: #4CAF50;">柑橘病虫害检测</h1> <!-- 上传区域 --> <div class="upload-area" id="upload-area" onclick="document.getElementById('file-input').click()"> 点击或拖拽上传柑橘图片 <input type="file" id="file-input" accept="image/*" style="display: none;" onchange="handleFileSelect(event)"> </div> <!-- 图片预览 --> <img id="preview" alt="预览"> <!-- 检测按钮 --> <button id="detect-btn" onclick="detect()">开始检测</button> <!-- 结果展示 --> <div id="result"> <h2>检测结果</h2> <img id="result-img" alt="检测结果图"> <div id="detections"></div> </div> <script> let selectedImage = null; // 保存上传的图片 // 处理文件选择(显示预览) function handleFileSelect(event) { const file = event.target.files[0]; if (file) { selectedImage = file; const reader = new FileReader(); reader.onload = function(e) { document.getElementById('preview').src = e.target.result; document.getElementById('preview').style.display = "block"; document.getElementById('detect-btn').style.display = "block"; }; reader.readAsDataURL(file); } } // 发起检测请求 async function detect() { if (!selectedImage) return; // 显示加载状态 document.getElementById('result').style.display = "block"; document.getElementById('detections').innerHTML = "检测中..."; // 构建 FormData const formData = new FormData(); formData.append('image', selectedImage); // 调用后端 API try { const response = await fetch('http://localhost:5000/detect', { method: 'POST', body: formData }); const data = await response.json(); // 显示结果图(直接用后端返回的临时路径,需确保前端能访问) document.getElementById('result-img').src = data.result_image; // 显示检测信息 let detectionsHtml = "<ul>"; data.detections.forEach(d => { detectionsHtml += `<li>${d.class}(置信度:${d.confidence})</li>`; }); detectionsHtml += "</ul>"; document.getElementById('detections').innerHTML = detectionsHtml; } catch (error) { document.getElementById('detections').innerHTML = "检测失败:" + error; } } </script> </body> </html>
柑橘检测前端测试
最新推荐文章于 2025-08-06 14:36:16 发布