Normalized Cut

This example constructs a Region Adjacency Graph (RAG) and recursively performs a Normalized Cut on it.


[1]Shi, J.; Malik, J., “Normalized cuts and image segmentation”, Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 22, no. 8, pp. 888-905, August 2000.
from skimage import data, segmentation, color
from skimage.future import graph
from matplotlib import pyplot as plt

img =

labels1 = segmentation.slic(img, compactness=30, n_segments=400)
out1 = color.label2rgb(labels1, img, kind='avg')

g = graph.rag_mean_color(img, labels1, mode='similarity')
labels2 = graph.cut_normalized(labels1, g)
out2 = color.label2rgb(labels2, img, kind='avg')

fig, ax = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(6, 8))


for a in ax:


Total running time of the script: ( 0 minutes 54.603 seconds)

Generated by Sphinx-Gallery