import numpy as np
import skimage.filter as filters

def generate_linear_structure(size, with_noise=False):
    """Generate a basic linear structure, optionally with noise"""
    linear_structure = np.zeros(shape=(size,size))
    linear_structure[:,size/2] = np.ones(size)

    if with_noise:
        linear_structure = np.identity(size)
        noise = np.random.rand(size, size) * 0.1
        linear_structure += noise
        linear_structure = filters.gaussian_filter(linear_structure, 1.5)

    return linear_structure

import numpy as np
import skimage.filter as filters

def generate_linear_structure(size, with_noise=False):
    """Generate a basic linear structure, optionally with noise"""
    linear_structure = np.zeros(shape=(size,size))
    linear_structure[:,size/2] = np.ones(size)

    if with_noise:
        linear_structure = np.identity(size)
        noise = np.random.rand(size, size) * 0.1
        linear_structure += noise
        linear_structure = filters.gaussian_filter(linear_structure, 1.5)

    return linear_structure


def generate_blob():
    """ Generate a blob by drawing from the normal distribution across two axes
    and binning it to the required size
    """
    mean = [0,0]
    cov = [[1,1],[10,100]] # diagonal covariance, points lie on x or y-axis
    x,y = np.random.multivariate_normal(mean,cov,5000).T
    h, xedges, yedges = np.histogram2d(x,y, bins=100)
    return h

Add testing function for blobs
Add testing function for blobs
