Joshu Leonardy
実 · 験 · 室

The Lab Series

Two series of labs. Image Processing covers the classical toolkit, following the textbooks most courses use: histograms, filters, the frequency domain, morphology. Computer Vision builds a convolutional network from the sliding window up to the problem I actually work on: finding animals that do not want to be found. Each lab is a single page you open and play with. No install, no notebook, no account.

Series A
画 · 像 · 処 · 理

Image Processing

Follows Gonzalez & Woods, Digital Image Processing (4th edition), section by section, with Burger & Burge, Digital Image Processing: An Algorithmic Introduction, alongside. Every lab takes your own image: drop one in and turn the dials.

01画 素

Pixels & Colour

How a continuous scene becomes a grid of integers. Drop the bit depth until false contours appear, undersample until gratings alias, compare nearest, bilinear and bicubic interpolation, paint pixels to see 4- and 8-adjacency, then split a photograph into RGB, CMYK and HSI and slice it by colour.

Sampling & quantizationInterpolationNeighbours & distanceRGB, CMYK, HSIPseudocolourColour slicingColour histograms
Open→
02階 調

Intensity & Histograms

Operations that look at one pixel at a time. Count a histogram by hand, bend a transfer curve and watch every pixel follow it, build histogram equalization from the cumulative sum, then let Otsu choose a threshold.

HistogramsNegative, log & gammaContrast stretchingHistogram equalizationCLAHEOtsu’s threshold
Open→
03空 間

Spatial Filtering

Operations that look at a neighbourhood. Type your own kernel and watch every product, compare box and Gaussian blur, see why the median beats the mean on salt-and-pepper noise, sharpen until it clips, and find edges with Sobel.

Correlation vs convolutionNoise modelsMean vs medianGaussian smoothingUnsharp maskingSobel & Laplacian
Open→
04周 波 数

Frequency Domain

Every image is a sum of waves. Build one by clicking in an empty spectrum, read a photograph’s spectrum point by point, swap magnitude and phase, see why an ideal filter rings, and notch periodic noise out by hand.

2-D DFTMagnitude & phaseConvolution theoremLow- & high-passRingingNotch filters
Open→
05復 元

Image Restoration

Undo known damage and measure how close you got. Estimate a noise PDF from a flat patch, flip the contraharmonic's Q and watch it fail, model motion and turbulence blur, see inverse filtering explode, then tame it with Wiener and constrained least squares.

Noise PDFsContraharmonic & adaptive filtersDegradation modelMotion & turbulenceInverse filteringWienerConstrained least squares
Open→
06形 態

Morphology

Treat a binary image as a set and probe it with a shape. Paint your own set and structuring element and watch erosion and dilation cell by cell, clean noise with opening and closing, fill holes and extract objects one iteration at a time, reconstruct without seeds, and flatten uneven lighting with the top-hat.

Erosion & dilationOpening & closingHit-or-missHole fillingConnected componentsSkeletonsReconstructionTop-hat
Open→
07分 割

Edges & Segmentation

See why noise ruins second derivatives, step through Marr–Hildreth and Canny stage by stage, find straight lines by voting in the Hough accumulator, finally threshold the uneven page with a moving average, then grow, cluster and flood regions.

Edge modelsMarr–HildrethCannyHough transformMultiple & variable thresholdsRegion growingk-meansWatershed
Open→

Start here if the course is image processing. Lab 03’s hand-made filters are exactly what the Convolution Lab in the next series turns into learned weights.

Series B
視 · 覚

Computer Vision

From the sliding window up to camouflaged object detection, the problem I work on in research.

01畳み込み

Convolution Lab

What a convolutional layer actually does. Step the window across the input by hand, watch the arithmetic as it happens, then run the same kernel over a real image.

Sliding windowPadding & stride DilationChannels & groups Parameter countingPooling Gradient descent
Open→
02領 域

Segmentation Lab

Classifying every pixel instead of the whole image. Drag two masks apart and watch IoU and Dice disagree, switch U-Net's skip connections off to find out what they were doing, then train a real two-layer network in the page and measure which loss actually finds a camouflaged shape.

IoU & DiceCross-entropy Dice & focal lossClass imbalance UpsamplingTransposed convolution U-Net skipsTraining a segmenter Box IoU & NMS
Open→
03符 号

Encoder–Decoder Lab

Walk up a backbone one stage at a time and watch resolution trade against context. Measure what a pretrained encoder really buys — the answer is not what you were told. Then widen the receptive field with dilation instead of downsampling, and gate a skip connection so it stops forwarding the whole background.

Feature pyramidsReceptive field Pretrained vs scratchFreezing & differential LR Dilated convolutionGridding artifact ASPPSE & CBAM Attention gates
Open→
04注 意

Attention Lab

Self-attention worked through by hand on a handful of patches, then the jump to vision transformers and what changes when a model can look anywhere at once.

Self-attentionViT Transformer segmentationDETR & SAM
Planned
05擬 態

Camouflage Lab

The problem this whole series was built to reach. Why a boundary that barely exists breaks the metrics from lab 02, what SINet's search-and-identify split is for, and where the field currently stands.

COD task & metricsS-measure & E-measure SINet architectureResearch landscape
Planned

These labs are meant to be walked in order, since each one assumes the last. If you only have an hour, the Convolution Lab on its own is still the thing most people are missing.