Graph-based maize leaf disease detection for South African farmers
# ⚡ NAILit — Maize Leaf Disease Analyser
> **v2.0 | Graph-Based Disease Detection System**
> A JavaFX desktop application for maize leaf disease classification, similarity analysis, and leaf health reporting.
---
## 📋 Table of Contents
- Overview
- Features
- System Architecture
- Disease Classification
- Tabs & Panels
- How It Works
- Project Structure
- Requirements
- Running the Application
- Team
---
## Overview
**NAILit** is a desktop tool built for agricultural researchers and farmers to detect and analyse diseases in maize (*Zea mays*) leaf images. It uses graph-based image segmentation, BFS cluster analysis, and seasonal colour-aware classification to deliver:
- Automated disease classification per uploaded image
- Per-disease confidence intervals on RGB colour channels
- Pairwise image similarity scoring
- Season-aware detection across Summer, Autumn, Spring, and Winter
---
## Features
| Feature | Description |
|---|---|
| 🔬 **Disease Classification** | Classifies images as Healthy, Northern Leaf Blight, Common Rust, or Gray Leaf Spot |
| 📊 **Similarity Matrix** | Pairwise vertex-to-vertex comparison across all uploaded images |
| 📈 **Leaf Analyser** | BFS cluster analysis with 95% confidence intervals per disease class |
| 🌱 **Season-Aware Detection** | Adjustable seasonal mode (Summer / Autumn / Spring / Winter) |
| 🖼️ **Image Preview Strip** | Scrollable thumbnail bar with per-image status labels |
| ⚡ **Multithreaded Analysis** | Image loading and similarity computation run off the UI thread |
---
## System Architecture
```
Main.java (UI Package — entry point)
│
├── UI Package
│ ├── ClassifyPanel — Disease Classification tab
│ ├── SimilarityPanel — Similarity Matrix tab
│ ├── AnalyserPanel — Analyser tab (CI table + recommendations)
│ ├── UIHelper — Shared static UI utilities
│ └── TutorialHelper — Anime-style interactive tutorial
│
├── Graphs Package
│ ├── ImageLoader — File → PixelNode …