/Graph-Based-Image-Segmentation

Efficient Graph-Based Image Segmentation, with added JPG reading and PNG writing

Primary LanguageC++GNU General Public License v2.0GPL-2.0

Quickly bundled three open-source projects together for a quick thesis experiment. Maybe someone else finds it useful, too. The segmentation algorithm's original 'readme' is included below.
Segmentation algorithm source: http://cs.brown.edu/~pff/segment/
JPEG decoding: https://code.google.com/archive/p/jpeg-compressor/
PNG encoding: http://lodev.org/lodepng/


# Graph Based Image Segmentation

Implementation of the segmentation algorithm described in:

Efficient Graph-Based Image Segmentation
Pedro F. Felzenszwalb and Daniel P. Huttenlocher
International Journal of Computer Vision, 59(2) September 2004.

The program takes a color image (PPM format) and produces a segmentation
with a random color assigned to each region.

1) Type "make" to compile "segment".

2) Run "segment sigma k min input output".

The parameters are: (see the paper for details)

sigma: Used to smooth the input image before segmenting it.
k: Value for the threshold function.
min: Minimum component size enforced by post-processing.
input: Input image.
output: Output image.

Typical parameters are sigma = 0.5, k = 500, min = 20.
Larger values for k result in larger components in the result.