import numpy as np
import matplotlib.pyplot as plt
print('numpy version: %s' % (np.__version__))
import skimage
print('skimage version: %s' % (skimage.__version__))
from skimage import io
from skimage import data
io.use_plugin('pil', )
from skimage.segmentation import felzenszwalb
numpy version: 1.9.0.dev-4dbf3fe skimage version: 0.9dev
img = data.coins()[20:168,0:128]
#img = io.imread('test_nuclei.tif')
fig, ax = plt.subplots()
ax.imshow(img, interpolation='nearest')
<matplotlib.image.AxesImage at 0xb6c192c>
min_sizes = np.logspace(-1, 3, 5)
scales = np.logspace(-1, 3, 5, base=2)
fig, axes = plt.subplots(min_sizes.size, scales.size,
sharex=True, sharey=True,
figsize=(2*min_sizes.size,
2*scales.size))
idx0, idx1 = np.mgrid[:min_sizes.size, :scales.size]
for i, j in zip(idx0.ravel(), idx1.ravel()):
min_size=min_sizes[i]
scale = scales[j]
segments = felzenszwalb(img,
min_size=min_size,
scale=scale,
sigma=3)
axes[i, j].imshow(segments, cmap='jet')
axes[i, j].set_xticks([])
axes[i, j].set_yticks([])
axes[i, j].set_xlabel('min_size: %.1f\n'
'scale: %.1f'
% (min_size, scale))
axes[0, 0].set_ylim(img.shape[0], 0)
axes[0, 0].set_xlim(0, img.shape[1])
(0, 128)