Sensor-oriented image processing & CNN denoising

Interactive-style walkthrough of the repo: real outputs from the Python pipeline (figures are checked into docs/assets/ so you can see results without installing anything).

Live site You are viewing the project website. Bookmark: https://edenmalka123.github.io/sensor-cv-algorithm-pipeline/

What you are seeing here

GitHub Pages hosts static HTML (this page) plus images. The grids and charts below were generated by scripts/export_docs_assets.py so visitors immediately see what the code produces. Training the residual CNN still happens on your machine (or a GPU cloud): export weights with src/train.py, then build the full classical-vs-CNN montage with src/demo.py.

Tip: On the GitHub repo page, click Settings → Pages and set the site URL in About → Website so the link is visible next to the repo description.

Classical processing montage

Sample image (skimage.data.camera) corrupted with salt-and-pepper noise, then filtered and analyzed.

Eight-panel classical pipeline: clean, noisy, median, bilateral, hist eq, Sobel, Otsu, morphology
Eight panels: clean reference, corrupted input, median / bilateral, histogram equalization, Sobel magnitude, Otsu mask, morphology (erode | dilate).

Line detection (Hough)

Canny edges on the noisy image, then probabilistic Hough segment overlay (OpenCV).

Hough transform line segments overlaid on noisy grayscale image
Red segments: detected lines (subset drawn for clarity).

Gaussian noise + classical denoisers

Closer to the CNN training setup: additive Gaussian noise (σ = 25 ), compared against median and bilateral filters.

Four panels: clean, Gaussian noisy, median filtered, bilateral filtered
Left to right: clean, noisy, median, bilateral.

Objective metrics

PSNR and SSIM versus the clean reference for the Gaussian-noise experiment (same definitions as src/metrics.py).

Bar charts of PSNR and SSIM for noisy, median, and bilateral reconstructions
Higher is better. Classical filters improve over the noisy baseline; the CNN (trained on STL-10 patches) targets further gains—run locally and compare.