Skip to content

feat: separable Gaussian blur (arbitrary radius) - #25

Merged
0717lee merged 1 commit into
mainfrom
feat/separable-gaussian
Jul 28, 2026
Merged

feat: separable Gaussian blur (arbitrary radius)#25
0717lee merged 1 commit into
mainfrom
feat/separable-gaussian

Conversation

@0717lee

@0717lee 0717lee commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Adds Image::gaussian(radius):

  • Binomial C(2r,k) weights = discrete Gaussian, integer-exact normalization by 4^r
  • Horizontal + vertical 1D passes: O(r)/pixel vs O(r^2) for 2D convolve
  • Radius clamped to [0,32]; radius 0 = copy; alpha preserved
  • 4 new tests: exact identity, flat-field fixed point across radii, impulse symmetry + compact support, radius-1 parity with Kernel::gaussian_blur within 1 rounding step
  • 85/85 tests passing

Closes #21

Binomial-weight (discrete Gaussian) 1D passes: O(r) per pixel instead of O(r^2), exactly normalized so flat fields are fixed points. Radius 1 reproduces the 3x3 kernel within one rounding step. Closes #21
@0717lee
0717lee merged commit 7274e41 into main Jul 28, 2026
1 check passed
@0717lee
0717lee deleted the feat/separable-gaussian branch July 28, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Separable Gaussian blur with arbitrary radius

1 participant