Sem descrição

Alexander Freytag 48bb048fe4 added init script for setting up workspace to allow for generic usage of library há 10 anos atrás
data b4d4c73367 added Matlab demo around mex-interfaces há 11 anos atrás
COPYING 9a56179e76 added felzenszwalb code há 12 anos atrás
Makefile 9a56179e76 added felzenszwalb code há 12 anos atrás
README.md e2eeb89b57 correct issue in readme há 10 anos atrás
compileFelzenszwalbSegmentation.m 1de245ec3d added compilation program há 11 anos atrás
convolve.h 9a56179e76 added felzenszwalb code há 12 anos atrás
demoFelzenszwalbSegmentation.m b4d4c73367 added Matlab demo around mex-interfaces há 11 anos atrás
disjoint-set.h 9a56179e76 added felzenszwalb code há 12 anos atrás
filter.h 9a56179e76 added felzenszwalb code há 12 anos atrás
image.h 9a56179e76 added felzenszwalb code há 12 anos atrás
imconv.h 9a56179e76 added felzenszwalb code há 12 anos atrás
imutil.h 9a56179e76 added felzenszwalb code há 12 anos atrás
initWorkspaceSegmentation.m 48bb048fe4 added init script for setting up workspace to allow for generic usage of library há 10 anos atrás
misc.h 9a56179e76 added felzenszwalb code há 12 anos atrás
pnmfile.h 9a56179e76 added felzenszwalb code há 12 anos atrás
segment-graph.h 962eb0a405 clean-up, code adaptation towards matlab-suitable data sizes, code commentations, stable version há 11 anos atrás
segment-image-labelOutput.h 962eb0a405 clean-up, code adaptation towards matlab-suitable data sizes, code commentations, stable version há 11 anos atrás
segment-image.h 962eb0a405 clean-up, code adaptation towards matlab-suitable data sizes, code commentations, stable version há 11 anos atrás
segment.cpp 9a56179e76 added felzenszwalb code há 12 anos atrás
segmentFelzenszwalb.cpp 962eb0a405 clean-up, code adaptation towards matlab-suitable data sizes, code commentations, stable version há 11 anos atrás
segmentFelzenszwalb.m 810368e721 minor change on default value há 12 anos atrás

README.md

A matlab wrapper for unsupervised segmentation of images based on Felzenszwalb and Huttenlocher

Matlab aspects

Compilation

simply run

compileFelzenszwalbSegmentation.m

Setup - safely add repo to search path

To make Matlab familiar with all relevant paths (there are only 2 currently) go to the root folder and execute

initWorkspaceSegmentation.m

Demo

1) Run

demoFelzenszwalbSegmentation.m

which requires Matlabs GUI to show images and segmentation results

2) Inspect the demo file to learn how to setup variables, and how to call the underlying mex functions

C++ aspects

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 [segment.cpp, note by A. Freytag] takes a color image (PPM format) and produces a segmentation with a random color assigned to each region.

1) Type make to compile segment.cpp

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.

NOTE ( by Alexander Freytag )

  • only images with less then std::numeric_limits::max() pixels are supported properly!