python类gaussian()的实例源码

Bim_segmowgli.py 文件源码 项目:balu-python 作者: dipaco 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def edge_LoG(I, sigma):
    LoG = laplace(gaussian(I, sigma=sigma), ksize=3)
    thres = np.absolute(LoG).mean() * 1.0
    output = sp.zeros(LoG.shape)
    w = output.shape[1]
    h = output.shape[0]

    for y in range(1, h - 1):
        for x in range(1, w - 1):
            patch = LoG[y - 1:y + 2, x - 1:x + 2]
            p = LoG[y, x]
            maxP = patch.max()
            minP = patch.min()
            if p > 0:
                zeroCross = True if minP < 0 else False
            else:
                zeroCross = True if maxP > 0 else False
            if ((maxP - minP) > thres) and zeroCross:
                output[y, x] = 1

    #FIXME: It is necesary to define if return the closing of the output or just the output
    #return binary_closing(output)
    return output
utils.py 文件源码 项目:convolutional-vqa 作者: paarthneekhara 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def get_blend_map(img, att_map, blur=True, overlap=True):
    # att_map -= att_map.min()
    # if att_map.max() > 0:
    #     att_map /= att_map.max()
    att_map = 1.0 - att_map
    att_map = transform.resize(att_map, (img.shape[:2]), order = 3, mode='edge')
    # print att_map.shape
    if blur:
        att_map = filters.gaussian(att_map, 0.02*max(img.shape[:2]))
        att_map -= att_map.min()
        att_map /= att_map.max()
    cmap = plt.get_cmap('jet')
    att_map_v = cmap(att_map)
    att_map_v = np.delete(att_map_v, 3, 2)
    if overlap:
        att_map = 1*(1-att_map**0.7).reshape(att_map.shape + (1,))*img + (att_map**0.7).reshape(att_map.shape+(1,)) * att_map_v
    return att_map
misc.py 文件源码 项目:SMURFS-Superpixels 作者: imaluengo 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def color_gmagnitude(img, sigma=None, norm=True, enhance=False):
    """

    """
    if sigma is not None:
        img = gaussian(img, sigma=sigma, multichannel=True)

    dx = np.dstack([sobel_h(img[..., i]) for i in range(img.shape[-1])])
    dy = np.dstack([sobel_v(img[..., i]) for i in range(img.shape[-1])])

    Jx = np.sum(dx**2, axis=-1)
    Jy = np.sum(dy**2, axis=-1)
    Jxy = np.sum(dx * dy, axis=-1)

    D = np.sqrt(np.abs(Jx**2 - 2 * Jx * Jy + Jy**2 + 4 * Jxy**2))
    e1 = (Jx + Jy + D) / 2. # First eigenvalue
    magnitude = np.sqrt(e1)

    if norm:
        magnitude /= magnitude.max()

    if enhance:
        magnitude = 1 - np.exp(-magnitude**2 / magnitude.mean())

    return magnitude.astype(np.float32)
add_staffline_symbols.py 文件源码 项目:muscima 作者: hajicj 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def staffline_surroundings_mask(staffline_cropobject):
    """Find the parts of the staffline's bounding box which lie
    above or below the actual staffline.

    These areas will be very small for straight stafflines,
    but might be considerable when staffline curvature grows.
    """
    # We segment both masks into "above staffline" and "below staffline"
    # areas.
    elevation = staffline_cropobject.mask * 255
    # Blur, to plug small holes somewhat:
    elevation = gaussian(elevation, sigma=1.0)
    # Prepare the segmentation markers: 1 is ABOVE, 2 is BELOW
    markers = numpy.zeros(staffline_cropobject.mask.shape)
    markers[0, :] = 1
    markers[-1, :] = 2
    markers[staffline_cropobject.mask != 0] = 0
    seg = watershed(elevation, markers)

    bmask = numpy.ones(seg.shape)
    bmask[seg != 2] = 0
    tmask = numpy.ones(seg.shape)
    tmask[seg != 1] = 0

    return bmask, tmask
image_tfs.py 文件源码 项目:tanda 作者: HazyResearch 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def TF_elastic_deform(img, alpha=1.0, sigma=1.0):
    """Elastic deformation of images as described in Simard 2003"""
    assert len(img.shape) == 3
    h, w, nc = img.shape
    if nc != 1:
        raise NotImplementedError("Multi-channel not implemented.")

    # Generate uniformly random displacement vectors, then convolve with gaussian kernel
    # and finally multiply by a magnitude coefficient alpha
    dx = alpha * gaussian_filter(
        (np.random.random((h, w)) * 2 - 1), sigma, mode="constant", cval=0
    )
    dy = alpha * gaussian_filter(
        (np.random.random((h, w)) * 2 - 1), sigma, mode="constant", cval=0
    )

    # Map image to the deformation mesh
    x, y    = np.meshgrid(np.arange(h), np.arange(w), indexing='ij')
    indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1))

    return map_coordinates(img.reshape((h,w)), indices, order=1).reshape(h,w,nc)
test_adapt_rgb.py 文件源码 项目:FCN_train 作者: 315386775 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def smooth_each(image, sigma):
    return filters.gaussian(image, sigma)
test_adapt_rgb.py 文件源码 项目:FCN_train 作者: 315386775 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def smooth_hsv(image, sigma):
    return filters.gaussian(image, sigma)
transforms.py 文件源码 项目:KagglePlanetPytorch 作者: Mctigger 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def blur(sigma=0.1):
    def call(x):
        x = gaussian(x, sigma=sigma, preserve_range=True, multichannel=True)
        return x
    return call
transforms.py 文件源码 项目:KagglePlanetPytorch 作者: Mctigger 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def random_blur(sigma=lambda: np.random.random_sample()*1):
    def call(x):
        x = gaussian(x, sigma=sigma(), preserve_range=True, multichannel=True)
        return x
    return call
pyfrp_img_module.py 文件源码 项目:PyFRAP 作者: alexblaessle 项目源码 文件源码 阅读 15 收藏 0 点赞 0 评论 0
def gaussianFilter(img,sigma=2.,debug=False,axes=None):

    """Applies gaussian filter to image.

    Args:
        img (numpy.ndarray): Input image.

    Keyword Args:
        sigma (float): Standard deviation of gaussian kernel applied.
        axes (list): List of matplotlib axes used for plotting. If not specified, will generate new ones.
        debug (bool): Print debugging messages and show debugging plots.

    Returns:
        numpy.ndarray: Processed image.
    """


    #Grab original image
    orgImg=img.copy()

    #Apply gaussian filter
    try:
        img = skifilt.gaussian_filter(img,sigma)
    except AttributeError:
        img = skifilt.gaussian(img,sigma)

    #Debugging plots
    if debug:

        #Make figure
        if axes==None:
            fig,axes = pyfrp_plot_module.makeSubplot([2,2],titles=["Original Image", "After gaussian","Histogram Original","Histogram gaussian"],sup="gaussianFilter debugging output") 

        #Get common range
        vmin,vmax=getCommonRange([orgImg,img])

        showImgAndHist(orgImg,axes=axes[0:2],vmin=vmin,vmax=vmax)
        showImgAndHist(img,axes=axes[2:],vmin=vmin,vmax=vmax)

    return img
transforms.py 文件源码 项目:pytorch-semantic-segmentation 作者: ZijunDeng 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __call__(self, img):
        sigma = 0.15 + random.random() * 1.15
        blurred_img = gaussian(np.array(img), sigma=sigma, multichannel=True)
        blurred_img *= 255
        return Image.fromarray(blurred_img.astype(np.uint8))
skin.py 文件源码 项目:color-extractor 作者: algolia 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def _range_mask(self, img):
        mask = np.all((img >= self._lo) & (img <= self._up), axis=2)

        # Smooth the mask.
        skm.binary_opening(mask, selem=self._k, out=mask)
        return gaussian(mask, 0.8, multichannel=True) != 0
visualizer.py 文件源码 项目:dlcv_for_beginners 作者: frombeijingwithlove 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def draw_density_estimation(self, axis, title, samples, cmap):
        axis.clear()
        axis.set_xlabel(title)
        density_estimation = numpy.zeros((self.l_kde, self.l_kde))
        for x, y in samples:
            if 0 < x < 1 and 0 < y < 1:
                density_estimation[int((1-y) / self.resolution)][int(x / self.resolution)] += 1
        density_estimation = filters.gaussian(density_estimation, self.bw_kde_)
        axis.imshow(density_estimation, cmap=cmap)
        axis.xaxis.set_major_locator(pyplot.NullLocator())
        axis.yaxis.set_major_locator(pyplot.NullLocator())
stafflines.py 文件源码 项目:muscima 作者: hajicj 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def staffline_surroundings_mask(staffline_cropobject):
    """Find the parts of the staffline's bounding box which lie
    above or below the actual staffline.

    These areas will be very small for straight stafflines,
    but might be considerable when staffline curvature grows.
    """
    # We segment both masks into "above staffline" and "below staffline"
    # areas.
    elevation = staffline_cropobject.mask * 255
    # Blur, to plug small holes somewhat:
    elevation = gaussian(elevation, sigma=1.0)
    # Prepare the segmentation markers: 1 is ABOVE, 2 is BELOW
    markers = numpy.zeros(staffline_cropobject.mask.shape)
    markers[0, :] = 1
    markers[-1, :] = 2
    markers[staffline_cropobject.mask != 0] = 0
    seg = watershed(elevation, markers)

    bmask = numpy.ones(seg.shape)
    bmask[seg != 2] = 0
    tmask = numpy.ones(seg.shape)
    tmask[seg != 1] = 0

    return bmask, tmask


##############################################################################
tfi.py 文件源码 项目:tabea_video_project 作者: neilslater 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def circle_mask_blurred( img, radius, sig = 20 ):
    '''Creates a blurred circle, using supplied image as template for dimensions'''
    height, width, ch = img.shape
    centre_y = (height-1) / 2.
    centre_x = (width-1) / 2.
    img_copy = img.copy()
    img_copy[:, :, :] = (0.,0.,0.)
    rr, cc = draw.circle(centre_y, centre_x, radius, img.shape)
    img_copy[rr, cc, :] = (1.,1.,1.)
    img_copy = filters.gaussian(img_copy, sigma=sig, mode='nearest', multichannel=True)
    return img_copy
image_tfs.py 文件源码 项目:tanda 作者: HazyResearch 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def TF_noise(x, magnitude=None, mode='gaussian', mean=0.0):
    if mode in ['gaussian', 'speckle']:
        return random_noise(x, mode=mode, mean=mean, var=magnitude)
    elif mode in ['salt', 'pepper', 's&p']:
        return random_noise(x, mode=mode, amount=magnitude)
    else:
        return random_noise(x, mode=mode)
image_tfs.py 文件源码 项目:tanda 作者: HazyResearch 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def TF_blur(x, sigma=0.0, target=None):
    return gaussian(x, sigma=sigma, multichannel=True)
gridsize.py 文件源码 项目:logsolve 作者: twinone 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def gridsize(original, segdst=SEGMENT_DISTANCE):
    global im
    # read the image from disk
    im = original.copy()

    add_image('Original')

    # edge detection
    im = sobel(im)
    # blurring
    im = filters.gaussian(im, sigma=5)
    # thresholding: convert to binary rage
    loc = threshold_local(im, 31)
    im = im > loc

    if (DEBUG): add_image('Threshold')

    # detect straight lines longer than 150px
    segs = probabilistic_hough_line(
        im,
        threshold=30,
        line_length=250,
        line_gap=7)

    #segs = [seg for seg in segs if vertical(seg)]

    # draw the segments
    im[:] = 0 # set image to black
    for seg in segs:
        ((x1, y1), (x2, y2)) = seg
        rr,cc = draw.line(y1,x1,y2,x2)
        im[rr, cc] = 1

    if (DEBUG): add_image('Hough Lines')
    hh, vv = process_segments(segs)

    # draw the segments
    im[:] = 0 # set image to black

    num = 0
    for yy in hh:
        for yyy in yy:
            (_,y),_ = yyy
            rr,cc = draw.line(y,0,y,999)
            im[rr, cc] = 1
            num += 1
    for xx in vv:
        for xxx in xx:
            (x,_),_ = xxx
            rr,cc = draw.line(0,x,999,x)
            im[rr, cc] = 1
            num += 1

    if (DEBUG):
        add_image('Filtered Segs')
        # finally save the result
        displ()

    return len(vv)-1, len(hh)-1
pre.py 文件源码 项目:skan 作者: jni 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def threshold(image, *, sigma=0., radius=0, offset=0.,
              method='sauvola', smooth_method='Gaussian'):
    """Use scikit-image filters to "intelligently" threshold an image.

    Parameters
    ----------
    image : array, shape (M, N, ...[, 3])
        Input image, conformant with scikit-image data type
        specification [1]_.
    sigma : float, optional
        If positive, use Gaussian filtering to smooth the image before
        thresholding.
    radius : int, optional
        If given, use local median thresholding instead of global.
    offset : float, optional
        If given, reduce the threshold by this amount. Higher values
        result in fewer pixels above the threshold.
    method: {'sauvola', 'niblack', 'median'}
        Which method to use for thresholding. Sauvola is 100x faster, but
        median might be more accurate.
    smooth_method: {'Gaussian', 'TV', 'NL'}
        Which method to use for smoothing. Choose from Gaussian smoothing,
        total variation denoising, and non-local means denoising.

    Returns
    -------
    thresholded : image of bool, same shape as `image`
        The thresholded image.

    References
    ----------
    .. [1] http://scikit-image.org/docs/dev/user_guide/data_types.html
    """
    if sigma > 0:
        if smooth_method.lower() == 'gaussian':
            image = filters.gaussian(image, sigma=sigma)
        elif smooth_method.lower() == 'tv':
            image = restoration.denoise_tv_bregman(image, weight=sigma)
        elif smooth_method.lower() == 'nl':
            image = restoration.denoise_nl_means(image,
                                             patch_size=round(2 * sigma))
    if radius == 0:
        t = filters.threshold_otsu(image) + offset
    else:
        if method == 'median':
            footprint = hyperball(image.ndim, radius=radius)
            t = ndi.median_filter(image, footprint=footprint) + offset
        elif method == 'sauvola':
            w = 2 * radius + 1
            t = threshold_sauvola(image, window_size=w, k=offset)
        elif method == 'niblack':
            w = 2 * radius + 1
            t = threshold_niblack(image, window_size=w, k=offset)
        else:
            raise ValueError('Unknown method %s. Valid methods are median,'
                             'niblack, and sauvola.' % method)
    thresholded = image > t
    return thresholded


问题


面经


文章

微信
公众号

扫码关注公众号