NanoVision-EM
A Python image-analysis pipeline for graphene micrographs and per-object morphology extraction.

Point at a flake, or focus the specimen and use the arrow keys, to measure it.
Light falls unevenly across the field. Without this, one threshold catches the darker corner’s background instead of the flakes.
Pixels darker than the line become material. Otsu’s method picks the line that best separates the two peaks.
Touching material pixels join into one flake, then each gets an area, a size and an elongation. Where flakes overlap they merge; the real pipeline separates them with a watershed.
Question
How far can a segmentation model get on graphene micrographs when its training masks come from classical image processing rather than hand annotation?
Approach
- Contrast enhancement
- Otsu · adaptive threshold
- Watershed separation
- Pseudo-mask generation
- U-Net segmentation
- Morphology extraction
Results so far
- 193 micrographs across 7 experimental batches; 177 retained after quality control.
- 902 per-object morphology records.
- 0.58 validation IoU against the heuristic pseudo-masks, not against hand-annotated ground truth.
Limits
- The model learns the heuristics it was trained on.
- Hand annotation is still in progress.