Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add aeren23/image-processing-skills --skill 04-morphology-toolkitgit clone --depth 1 https://github.com/aeren23/image-processing-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/aeren23/image-processing-skills/04-morphology-toolkit)<a href="https://agentmods.dev/skills/aeren23/image-processing-skills/04-morphology-toolkit"><img src="https://agentmods.dev/badge/skills/aeren23/image-processing-skills/04-morphology-toolkit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/aeren23/image-processing-skills/04-morphology-toolkit"><img src="https://agentmods.dev/badge/skills/aeren23/image-processing-skills/04-morphology-toolkit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00030 | $0.01223 |
| Opus 5 | $0.00015 | $0.00611 |
| Sonnet 5 | $0.00006 | $0.00245 |
| Haiku 4.5 | $0.00003 | $0.00122 |
Grade A, and why
morphology-toolkit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Morphology Toolkit
When to Use This Skill
- Cleaning binary images after thresholding (removing noise, filling holes)
- Separating touching objects in segmentation results
- Extracting object boundaries or skeletons
- Enhancing contrast for specific features (Top-Hat/Bottom-Hat)
- Processing fingerprints, cell images, document scans
Decision Framework
The Core Four Operations
What do you need to clean up?
├── Small white noise specks on black background (external noise)
│ └── ✅ Opening (Erosion → Dilation)
│
├── Small black holes inside white objects (internal gaps)
│ └── ✅ Closing (Dilation → Erosion)
│
├── Objects touching each other (need separation)
│ └── ✅ Erosion (shrinks objects apart)
│
└── Broken lines or gaps in object boundaries
└── ✅ Dilation (expands and connects)
Opening vs Closing — The Memory Trick
| Operation | Formula | Removes | Keeps | Memory Aid |
|---|---|---|---|---|
| Opening | Erode → Dilate | External noise | Object integrity | "Opens" gaps between noise and object |
| Closing | Dilate → Erode | Internal holes | Object shape | "Closes" holes inside object |
Golden rule: Opening cleans the outside, Closing fills the inside.
Real-world example — Fingerprint processing:
- Opening removes background dirt/smudges
- Closing reconnects broken ridge lines
Structuring Element Selection
| Shape | OpenCV Constant | Best For |
|---|---|---|
| Rectangle/Square | cv2.MORPH_RECT |
Angular objects, text characters |
| Ellipse/Disk | cv2.MORPH_ELLIPSE |
Round objects, cells, coins |
| Cross (+) | cv2.MORPH_CROSS |
Thin lines, intersections |
Size selection rule: The structuring element must be:
- Larger than the noise you want to remove
- Smaller than the objects you want to keep
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
Contrast Enhancement Morphology
| Filter | Formula | Reveals | Use Case |
|---|---|---|---|
| Top-Hat | Original - Opening | Bright details on dark background | Bright spots, text on dark surface |
| Bottom-Hat | Closing - Original | Dark details on bright background | Dark spots, stains on light surface |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 141 lines · 30 tokens per session scan A eb51dbb81b9d
morphology-toolkit is a skill published in the GitHub repository aeren23/image-processing-skills (5 stars, last pushed 3mo ago), licensed MIT. It adds 30 tokens to every session and 1,223 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
landlab
Landscape evolution and surface process modelling in Python. Build 2D numerical models for erosion, hydrology, soil transport, and geomorphology. Use when Claude needs to: (1) Model landscape evolution over time, (2) Simulate river/stream erosion, (3) Route water flow across terrain, (4) Model hillslope diffusion…
spatial-modality-integrate
Identify spatial domains with DeepST or PearlST. This skill is directory-only: use --input /path/to/sample for single-sample runs; use --mode integration --input-list samples.txt only with DeepST.
spatial-morphology
Python API skill for morphology feature extraction and image-expression feature fusion in spatial analysis workflows.
instrument-data-to-allotrope
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full…
matlab
Build, review, migrate, and safely plan MATLAB or GNU Octave numerical workflows, including arrays, tabular/time data, tests, projects, graphics, MAT files, and explicit Python interoperability.
exploratory-data-analysis
Perform bounded, local exploratory analysis of explicitly supported scientific files. Use for redacted CSV/TSV/JSON profiles; optional NumPy, HDF5, FASTA/FASTQ, and basic image metadata inspection; missingness/leakage audits; outlier and transformation sensitivity; and rigorous EDA report scaffolds. Other domain…