def plot_masked_segmap(s_img):
    f = pp.figure()
    mx_label = s_img.max()
    cm = colors.npt_colormap(mx_label)
    pp.imshow(np.ma.masked_where(s_img < 0, s_img), cmap=cm)
    pp.colorbar()
    f.axes[0].xaxis.set_visible(False)
    f.axes[0].yaxis.set_visible(False)
    return f
s_img1 = classifier.classify(img, refined=False, cluster_size_threshold=50)
print "partial segmentation : %d / %d pixels labeled" % ((s_img1 >= 0).sum(), s_img1.size)
f = plot_masked_centroid_image(rgb_img, s_img1)
f.savefig(iname + "_persistence_%d_parts_model.pdf" % n_parts)
f = plot_masked_segmap(s_img1)
f.savefig(iname + "_persistence_%d_parts_model_labels.pdf" % n_parts)

bmap = ut.draw_boundaries(s_img1, m_seek.saddles)
f = pp.figure()
pp.imshow(bmap, cmap=pp.cm.gray)
f.savefig(iname + "_boundaries.pdf")

if video:
    lab_vid = np.array([colors.rgb2lab(vf) for vf in vid])
    svid = cls.classify_sequence(classifier, lab_vid)
    segcmap = colors.npt_colormap(svid.max())
    n = pp.normalize()
    svid_masked = np.where(svid < 0, 0, svid)
    svid_mapped = segcmap(n(svid_masked).ravel()).reshape(svid.shape + (4,))
    svid_mapped = (svid_mapped[..., :3] * 255).astype("B")
    both_vids = np.concatenate((vid, svid_mapped), axis=2)

    anim = ut.animate_frames(both_vids, movie_name=iname + "_joint", fps=25)
    anim.repeat = False

    ## anim = ut.animate_frames(
    ##     np.ma.masked_where(svid < 0, svid),
    ##     movie_name=iname+'_naive_classifier',
    ##     fps=25,
    ##     cmap=colors.npt_colormap(svid.max())
    ##     )