|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Image Classifier</title>
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
|
|
</head>
|
|
<body>
|
|
<div id="headerContainer" class="header-container">
|
|
<h1>BerryWatch AI</h1>
|
|
</div>
|
|
|
|
<div id="mainContainer" style="display: flex;">
|
|
<div id="inputContainer" style="flex-grow: 1;">
|
|
<input type="file" id="uploadInput">
|
|
<button id="uploadButton">Upload</button>
|
|
<div id="predictionResult"></div>
|
|
<div id="diseaseInfo" style="display: none;">
|
|
<h2>General Precaution</h2>
|
|
<div id="diseaseDescription"></div>
|
|
<div id="prevention"></div>
|
|
<div id="suggestions"></div>
|
|
</div>
|
|
</div>
|
|
<div id="uploadedImageContainer" style="flex-grow: 1; margin-left: 20px;">
|
|
<img id="uploadedImage" src="#" alt="Uploaded Image" style="max-width: 100%; max-height: 300px; display: none;">
|
|
</div>
|
|
</div>
|
|
<script>
|
|
document.getElementById('uploadInput').addEventListener('change', function() {
|
|
const fileInput = document.getElementById('uploadInput');
|
|
const file = fileInput.files[0];
|
|
if (!file) {
|
|
alert('Please select a file.');
|
|
return;
|
|
}
|
|
|
|
|
|
const uploadedImage = document.getElementById('uploadedImage');
|
|
uploadedImage.src = URL.createObjectURL(file);
|
|
uploadedImage.style.display = 'block';
|
|
});
|
|
|
|
document.getElementById('uploadButton').addEventListener('click', async function() {
|
|
const fileInput = document.getElementById('uploadInput');
|
|
const file = fileInput.files[0];
|
|
if (!file) {
|
|
alert('Please select a file.');
|
|
return;
|
|
}
|
|
|
|
const formData = new FormData();
|
|
formData.append('file', file);
|
|
|
|
try {
|
|
const response = await fetch('/predict', {
|
|
method: 'POST',
|
|
body: formData
|
|
});
|
|
const data = await response.json();
|
|
document.getElementById('predictionResult').innerText = data.prediction;
|
|
|
|
|
|
const diseaseInfo = document.getElementById('diseaseInfo');
|
|
const diseaseDescription = document.getElementById('diseaseDescription');
|
|
const prevention = document.getElementById('prevention');
|
|
const suggestions = document.getElementById('suggestions');
|
|
|
|
|
|
diseaseDescription.innerHTML = '';
|
|
prevention.innerHTML = '';
|
|
suggestions.innerHTML = '';
|
|
|
|
switch (data.prediction.toLowerCase()) {
|
|
case 'ecoli':
|
|
diseaseDescription.innerHTML = 'Disease caused by E. coli.';
|
|
prevention.innerHTML = 'Prevent contamination of food and water sources.';
|
|
suggestions.innerHTML = 'Use organic fertilizers such as compost.';
|
|
diseaseInfo.style.display = 'block';
|
|
break;
|
|
case 'streptococcus':
|
|
diseaseDescription.innerHTML = 'Disease caused by Streptococcus bacteria.';
|
|
prevention.innerHTML = 'Maintain good hygiene and cleanliness.';
|
|
suggestions.innerHTML = 'Regularly sanitize surfaces and avoid close contact with infected individuals.';
|
|
diseaseInfo.style.display = 'block';
|
|
break;
|
|
case 'staphylococcus':
|
|
diseaseDescription.innerHTML = 'Disease caused by Staphylococcus bacteria.';
|
|
prevention.innerHTML = 'Practice good personal hygiene and wound care.';
|
|
suggestions.innerHTML = 'Use antibiotics as prescribed by a healthcare professional.';
|
|
diseaseInfo.style.display = 'block';
|
|
break;
|
|
case 'klebsiella':
|
|
diseaseDescription.innerHTML = 'Disease caused by Klebsiella bacteria.';
|
|
prevention.innerHTML = 'Prevent transmission through proper sanitation measures.';
|
|
suggestions.innerHTML = 'Avoid overuse of antibiotics.';
|
|
diseaseInfo.style.display = 'block';
|
|
break;
|
|
case 'pseudomonas':
|
|
diseaseDescription.innerHTML = 'Disease caused by Pseudomonas bacteria.';
|
|
prevention.innerHTML = 'Maintain proper hygiene and cleanliness in healthcare settings.';
|
|
suggestions.innerHTML = 'Use appropriate disinfectants and antibiotics.';
|
|
diseaseInfo.style.display = 'block';
|
|
break;
|
|
default:
|
|
|
|
diseaseInfo.style.display = 'none';
|
|
break;
|
|
}
|
|
} catch (error) {
|
|
console.error('Error:', error);
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |