You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Голиков Иван a3cebabb32 Merge branch 'feature/readme-update' of ivnglkv/gblur into master 2 years ago
examples Created example images 2 years ago
gaussian_blur Checking for pointer values after malloc and realloc 6 years ago
.gitignore Initial commit 6 years ago
CMakeLists.txt Initial commit 6 years ago
LICENSE Initial commit 6 years ago
Makefile Initial commit 6 years ago Simplified example of usage 2 years ago
main.c Overwriting original file, if no output file were specified; closing files than they are no longer needed. 6 years ago

Gaussian blur

This simple program performs a gaussian blur on given image, using «sliding window» technique, which allows to compute resulting image with O(n × M × N ) + O(m × M × N ) complexity, where M × N stands for input image dimensions and m, n stands for 6 * sigma (sigma is passed as a parameter to program).

Here is the example of program usage result.

Original image:

Original image

GIMP Gaussian blur (radius = 15):


Gblur (sigma = 5):



You can clone this repo with git:

git clone


This program uses libjpeg library.


In order to build this program you should have cmake and make installed. Also install development headers for libjpeg library.

After that, build it with


Output binary will be placed into build directory.


gblur -i input_file [-o output_file] [-s radius] [-h]


-i: path to file with input RGB JPEG image.
-o: path to file where blured RGB JPEG image will be recorded. If no path will be specified, input file will be overwritten!
-s: radius of blur. Default is 5.
-h: show this help.

Example of usage:

gblur -i img.jpg -o blured_img.jpg -s 5


Copyright (c) 2016, Golikov Ivan

Licensed under The BSD-3 Clause License