コード例 #1
0
## vid, _ = importing.y4m_sequence(
##     '/Users/mike/docs/classes/el612/vids/stefan_sif.y4m',
##     t_range=()
##     )
## img = vid[0]
## iname = 'stefan'
## c_sigma = 5; s_sigma = None; p_thresh = 0; n_parts = 20; #video = True


rgb_img = np.array(img)
f = pp.figure()
pp.imshow(rgb_img)
f.axes[0].xaxis.set_visible(False)
f.axes[0].yaxis.set_visible(False)
f.savefig(iname + "_raw.pdf")
img = colors.rgb2lab(rgb_img)
## img = img[...,0].squeeze()

m_seek = topo.ModeSeeking(spatial_bw=s_sigma, color_bw=c_sigma)
classifier = m_seek.train_on_image(img, bin_sigma=1.25)
s_img0 = classifier.classify(img, refined=False, cluster_size_threshold=50)
print "partial segmentation : %d / %d pixels labeled" % ((s_img0 >= 0).sum(), s_img0.size)
f = plot_masked_centroid_image(rgb_img, s_img0)
f.savefig(iname + "_initial.pdf")
f = plot_masked_segmap(s_img0)
f.savefig(iname + "_initial_labels.pdf")
pp.show()

classifier = m_seek.persistence_merge(p_thresh)
classifier.refine_labels()
s_img1 = classifier.classify(img, refined=False, cluster_size_threshold=50)
コード例 #2
0
import numpy as np
import matplotlib.pyplot as pp
import PIL.Image as PImage

import mstools.colors as colors
from mstools.mean_shift.topological import ModeSeeking

# swan
img = PImage.open("/Users/mike/docs/classes/el612/proj/berk_data/BSR/BSDS500/data/images/test/8068.jpg")
iname = "swan"

image = colors.rgb2lab(np.array(img))
gray_image = image[..., 0]

sigma = 4.0

ms = ModeSeeking(color_bw=sigma)
c = ms.train_on_image(gray_image, density_xform=None)
x = c.cell_edges[0]
xc = (x[:-1] + x[1:]) / 2.0
p = c.mud_grid[..., -1]

peak_pts = [m.idx for (_, m) in ms.clusters.items()]
peak_hts = [m.elevation for (_, m) in ms.clusters.items()]
saddle_pts = [s.idx for s in ms.saddles]
saddle_hts = [s.elevation for s in ms.saddles]

f = pp.figure()
pp.plot(xc, p)
pp.plot(xc[peak_pts], peak_hts, "go", label="Modes")
pp.plot(xc[saddle_pts], saddle_hts, "ro", label="Saddles")