// We can visualize the images.
fig, axes = plt.subplots(nrows=2, ncols=3)
ax = axes.ravel()
ax[0].imshow(image, cmap="gray")
ax[0].set_title("Grayscale shape")
// The generated images can be much more complex. For example, let"s try many
// shapes of any color. If we want the colors to be particularly light, we can
// set the `intensity_range` to an upper subrange of (0,255).
image1, _ = random_shapes((128, 128), max_shapes=10,
intensity_range=((100, 255),))
// Moar :)
image2, _ = random_shapes((128, 128), max_shapes=10,
intensity_range=((200, 255),))
image3, _ = random_shapes((128, 128), max_shapes=10,
intensity_range=((50, 255),))
image4, _ = random_shapes((128, 128), max_shapes=10,
intensity_range=((0, 255),))
for i, image in enumerate([image1, image2, image3, image4], 1):
ax[i].imshow(image)
ax[i].set_title("Colored shapes, //{}".format(i-1))
// These shapes are well suited to test segmentation algorithms. Often, we
// want shapes to overlap to test the algorithm. This is also possible:
image, _ = random_shapes((128, 128), min_shapes=5, max_shapes=10,
min_size=20, allow_overlap=True)
ax[5].imshow(image)
ax[5].set_title("Overlapping shapes")
for a in ax:
a.set_xticklabels([])
a.set_yticklabels([])