コード例 #1
0
ファイル: tools.py プロジェクト: mjirik/lisa
def smoothing_tv(data, weight, pseudo_3D='True', multichannel=False, sliceId=2):
    if data.ndim == 3 and pseudo_3D:
        if sliceId == 2:
            for idx in range(data.shape[2]):
                temp = skifil.denoise_tv_chambolle(data[:, :, idx], weight=weight, multichannel=multichannel)
                data[:, :, idx] = (255 * temp).astype(np.uint8)
        elif sliceId == 0:
            for idx in range(data.shape[0]):
                temp = skifil.denoise_tv_chambolle(data[idx, :, :], weight=weight, multichannel=multichannel)
                data[idx, :, :] = (255 * temp).astype(np.uint8)
    else:
        data = skifil.denoise_tv_chambolle(data, weight=weight, multichannel=False)
        data = (255 * data).astype(np.uint8)
    return data
コード例 #2
0
ファイル: __init__.py プロジェクト: timoMa/skneuro
    def tvChambolle(image, weight, eps=0.001, maxIter=None, out=None):

        # to restore min max ?
        restore=False
        if image.min() < 1.0 or image.max() > 1.0:
            restore=True
            gaussSmoothed = gaussianSmoothing(image, simga=1.0)
            oldMin = gaussSmoothed.min()
            oldMax = gaussSmoothed.max()
            image -= image.min()
            image /= image.max()

        kwargs = dict(im=image, weight=weight, eps=eps, multichannel=False)

        if maxIter is not None:
            kwargs['n_iter_max'] = maxIter

        res = denoise_tv_chambolle(**kwargs)
        if restore:
            res -= res.min()
            res /= res.max()
            res *= (oldMax-oldMin)
            res += oldMin

        if out is None:
            return res
        else:
            out[:] = res[:]
            return out
コード例 #3
0
    def _denoise(self, img, weight):
        """
            use TV-denoise to remove noise

            http://scipy-lectures.github.com/advanced/image_processing/
            http://en.wikipedia.org/wiki/Total_variation_denoising
        """

        from skimage.filters import denoise_tv_chambolle

        img = denoise_tv_chambolle(img, weight=weight) * 255

        return img.astype('uint8')
コード例 #4
0
ファイル: locator.py プロジェクト: NMGRL/pychron
    def _denoise(self, img, weight):
        """
            use TV-denoise to remove noise

            http://scipy-lectures.github.com/advanced/image_processing/
            http://en.wikipedia.org/wiki/Total_variation_denoising
        """

        from skimage.filters import denoise_tv_chambolle

        img = denoise_tv_chambolle(img, weight=weight) * 255

        return img.astype('uint8')
コード例 #5
0
ファイル: tools.py プロジェクト: mjirik/lisa
def smoothing_tv(data,
                 weight,
                 pseudo_3D='True',
                 multichannel=False,
                 sliceId=2):
    if data.ndim == 3 and pseudo_3D:
        if sliceId == 2:
            for idx in range(data.shape[2]):
                temp = skifil.denoise_tv_chambolle(data[:, :, idx],
                                                   weight=weight,
                                                   multichannel=multichannel)
                data[:, :, idx] = (255 * temp).astype(np.uint8)
        elif sliceId == 0:
            for idx in range(data.shape[0]):
                temp = skifil.denoise_tv_chambolle(data[idx, :, :],
                                                   weight=weight,
                                                   multichannel=multichannel)
                data[idx, :, :] = (255 * temp).astype(np.uint8)
    else:
        data = skifil.denoise_tv_chambolle(data,
                                           weight=weight,
                                           multichannel=False)
        data = (255 * data).astype(np.uint8)
    return data
コード例 #6
0
# FILTER COMPARISION 
import matplotlib.pyplot as plt
from skimage import data
from skimage import filters
from scipy import ndimage

coins = data.coins()
gaussian_filter_coins = ndimage.gaussian_filter(coins, sigma=2)
med_filter_coins = ndimage.filters.median_filter(coins,size=2)
tv_filter_coins = filters.denoise_tv_chambolle(coins, weight=0.1)

plt.figure(figsize=(16, 4))
plt.subplot(141)
plt.imshow(coins[10:80, 300:370], cmap='gray', interpolation='nearest')
plt.axis('off')
plt.title('Image')
plt.subplot(142)
plt.imshow(gaussian_filter_coins[10:80, 300:370], cmap='gray',interpolation='nearest')
plt.axis('off')
plt.title('Gaussian filter')
plt.subplot(143)
plt.imshow(med_filter_coins[10:80, 300:370], cmap='gray',interpolation='nearest')
plt.axis('off')
plt.title('Median filter')
plt.subplot(144)
plt.imshow(tv_filter_coins[10:80, 300:370], cmap='gray',interpolation='nearest')
plt.axis('off')
plt.title('TV filter')
plt.show()