rusty1s/embedded_gcnn

View on GitHub
lib/pipeline/preprocess.py

Summary

Maintainability
A
1 hr
Test Coverage
from ..segmentation import segmentation_adjacency
from ..graph import coarsen_adj, perm_features


def preprocess_pipeline(image,
                        segmentation_algorithm,
                        feature_extraction_algorithm,
                        levels,
                        connectivity=4,
                        scale_invariance=False,
                        stddev=1):

    segmentation = segmentation_algorithm(image)
    adj, points, mass = segmentation_adjacency(segmentation, connectivity)
    features = feature_extraction_algorithm(segmentation, image)

    adjs_dist, adjs_rad, perm = coarsen_adj(adj, points, mass, levels,
                                            scale_invariance, stddev)

    features = perm_features(features, perm)

    return features, adjs_dist, adjs_rad


def preprocess_pipeline_fixed(segmentation_algorithm,
                              feature_extraction_algorithm,
                              levels,
                              connectivity=4,
                              scale_invariance=False,
                              stddev=1):
    def _preprocess(image):
        return preprocess_pipeline(image, segmentation_algorithm,
                                   feature_extraction_algorithm, levels,
                                   connectivity, scale_invariance, stddev)

    return _preprocess