| Crates.io | graph-based-image-segmentation |
| lib.rs | graph-based-image-segmentation |
| version | 0.2.1 |
| created_at | 2022-11-04 20:50:08.288294+00 |
| updated_at | 2023-05-25 00:08:23.755042+00 |
| description | An implementation of graph-based image segmentation algorithms based on superpixels. |
| homepage | |
| repository | https://github.com/sunsided/graph-based-image-segmentation |
| max_upload_size | |
| id | 705446 |
| size | 30,793 |
This repository contains a Rust implementation of the graph-based image segmentation algorithms
described in [1] (available here)
focussing on generating over-segmentations, also referred to as superpixels.
| Contours | Labels |
|---|---|
![]() |
![]() |
Please note that this is a reference implementation and not particularly fast.
[1] P. F. Felzenswalb and D. P. Huttenlocher.
Efficient Graph-Based Image Segmentation.
International Journal of Computer Vision, volume 59, number 2, 2004.
The implementation is based on this work by David Stutz,
which in turn was used in [2] for evaluation.
[2] D. Stutz, A. Hermans, B. Leibe.
Superpixels: An Evaluation of the State-of-the-Art.
Computer Vision and Image Understanding, 2018.
fn main() {
let mut image = imread("data/tree.jpg", IMREAD_COLOR).unwrap();
let threshold = 10f32;
let segment_size = 10;
let mut segmenter = Segmentation::new(
EuclideanRGB::default(),
MagicThreshold::new(threshold),
segment_size,
);
// NOTE: The image should be blurred before use; this is left out here for brevity.
let labels = segmenter.segment_image(&image);
}