pnmsmooth

Smooth and blur PNM images

TLDR

Smooth/blur image
$ pnmsmooth [input.pnm] > [output.pnm]
Smooth with custom size
$ pnmsmooth -size [5] [input.pnm] > [output.pnm]
Multiple passes
$ pnmsmooth [input.pnm] | pnmsmooth > [output.pnm]

SYNOPSIS

pnmsmooth [options] [pnmfile]

DESCRIPTION

pnmsmooth applies a smoothing (blur) filter to a PNM image using convolution. It averages neighboring pixels to reduce noise and sharp edges.Wrapper around pnmconvol with a smoothing kernel.

PARAMETERS

-size n

Convolution size (default 3).
-dump file
Dump convolution matrix.

EXAMPLES

$ # Basic smoothing
pnmsmooth noisy.ppm > smooth.ppm

# Stronger smoothing with larger kernel
pnmsmooth -size 5 image.ppm > blurred.ppm

# Multiple smoothing passes
pnmsmooth image.ppm | pnmsmooth | pnmsmooth > very_smooth.ppm

# Reduce noise then enhance
pnmsmooth noisy.pgm | pgmenhance > cleaned.pgm

CONVOLUTION

Default 3x3 averaging kernel:

$ 1 1 1
1 1 1
1 1 1
Larger sizes create stronger blur effect.

INSTALL

sudo apt install netpbm
sudo dnf install netpbm
sudo pacman -S netpbm
sudo apk add netpbm
sudo zypper install netpbm
brew install netpbm
nix profile install nixpkgs#netpbm

CAVEATS

Reduces image sharpness. Use pnmconvol for custom kernels. Part of Netpbm.

HISTORY

pnmsmooth is part of Netpbm by Jef Poskanzer, providing simple image smoothing via convolution.

SEE ALSO

pnmconvol(1), pgmenhance(1), netpbm(1)