← SELECTED WORK / PROJECT 005
Computer
visionPersonal image-processing experiments
Exploring how image geometry, clustering and regression transform pixels into useful results.
PythonOpenCVImage geometrySegmentationImage restoration
TWO PHOTOS / ONE PANORAMAPERSONAL LEARNING PROJECT
- MY ROLE
- Algorithm implementation & experimentation
- CONTEXT
- Personal learning project
- TOOLS
- Python · NumPy · OpenCV
- FOCUS
- Stitching, segmentation & restoration
01 / THE PROJECT
Explore pixels.
Build understanding.
Develop image-processing algorithms and investigate how their assumptions affect the result.
- I undertook this personal learning project to understand computer vision through implementation and visual experimentation.
- The work explored panorama stitching, image segmentation and reconstruction from corrupted images.
- Python notebooks captured intermediate results, parameter comparisons and observations.
3Featured experiment areas
2Own photographs used in the panorama
5Colour and position features
used in superpixel clustering
These figures describe the featured implementation, rather than measured accuracy.
02 / EXPERIMENT WORKFLOW
See the pipeline.
Control each step.
- Each experiment connected input preparation, mathematical operations and visual inspection.
- Intermediate plots made coordinate, intensity and parameter choices easier to investigate.
- Prepare: Load images and establish colour order, intensity scale and pixel coordinates.
- Implement: Write interpolation, clustering and regression calculations in Python.
- Experiment: Vary seam filters, cluster counts, spatial weights and corruption patterns.
- Inspect: Compare intermediate outputs and final results with the original images.
PERSONAL LEARNING GOALS
Questions that guided the work
- How can overlapping photographs be mapped into a common image plane?
- How do interpolation and filtering affect the appearance of a panorama seam?
- How does spatial weighting change colour-based image segmentation?
- How well does a learned reconstruction transfer to an unseen image?
03 / PANORAMA STITCHING
Find the overlap.
Align the views.
A shared homography connected overlapping photographs to one panorama coordinate system.
Initial panoramaReconstruct the image grid
- The homography mapped panorama pixels into the second photograph.
- My bilinear interpolation function combined values from the four neighbouring pixels.
- Bounds checks prevented sampling outside the input image.
Filtered and cropped panoramaInspect the join honestly
- A narrow Gaussian filter softened the seam, while cropping reduced the output width.
- The reference-image experiment also explored brightness compensation.
- Misaligned blinds remained visible, revealing the limits of this stitching approach.
View reference-image panorama ↗
04 / IMAGE SEGMENTATION
Group the pixels.
Reveal the regions.
- I implemented K-means assignment and centroid updates using NumPy.
- Empty clusters were reinitialised to keep the iteration running.
- Adding normalised pixel positions extended colour clustering into spatially weighted superpixels.
Superpixel parameter comparisons
Bounding rectangles around computed regions
- Lower spatial weighting favoured colour similarity across distant image regions.
- Higher spatial weighting produced more compact, location-driven groups.
- Bounding rectangles visualised cluster extents; they were not semantic object detections.
05 / IMAGE RESTORATION
Learn from examples.
Test on new images.
- A multivariate linear regression model mapped corrupted image vectors to clean image vectors.
- The implementation fitted coefficients with a pseudoinverse and reconstructed images from predictions.
- Experiments compared fixed and random corruption patterns on unseen examples.
Fixed corruption pattern
Random corruption pattern
Visual examples show reconstruction behaviour; they do not establish a verified accuracy improvement.
06 / DEVELOPMENT & ITERATION
Change a parameter.
Inspect the effect.
The work progressed from controlled transformations to more open-ended image experiments.
- 01
From known geometry to own photos
- A known homography established the coordinate and interpolation workflow.
- My own photographs then required feature matching and robust geometry estimation.
- 02
From colour to spatial structure
- Colour-only clustering established the assignment and centroid-update implementation.
- Normalised image positions introduced a controllable preference for nearby pixels.
- 03
From fixed to changing corruption
- Fixed-pattern reconstruction provided an initial image-to-image regression experiment.
- Random patterns exposed weaker reconstruction and motivated a local-patch exploration.
07 / VALIDATION & LIMITATIONS
Look at the output.
Check the assumptions.
- Saved figures exposed visible seams, spatial-weighting effects and blurred reconstructions.
- The written observations connected these effects to geometry, filtering and model generalisation.
- The current experiments provide qualitative implementation examples.
- 01
Geometry
Inspect alignment and structural discontinuities where the panorama images meet.
- 02
Segmentation
Compare colour consistency and spatial compactness as the clustering parameters change.
- 03
Reconstruction
Compare clean, corrupted and restored examples while keeping training and test images distinct.
NEXT ITERATION
Make evaluation
repeatable.
- Standardise image scaling and image selection before reporting restoration metrics.
- Re-run notebooks from a clean state to keep code and saved outputs consistent.
- Compare multiple examples before drawing conclusions about algorithm performance.
08 / REFLECTION
The lessons
I take forward.
- Implementing the calculations made image-processing assumptions tangible.
- Visual comparisons helped identify where an algorithm worked and where it needed refinement.
01Geometry comes before blending
Filtering can soften a seam, but it cannot recover consistent geometry from misaligned structures.
02Features define the groups
Colour and location weighting determine which similarities the clustering algorithm treats as important.
03A visual result needs a fair comparison
Consistent scaling, image selection and test data are essential before quoting performance figures.