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()) ## )