示例#1
0
    def update(self, changed, thread):
        wavelet = self.wavelet.get()
        if wavelets.TriangeWaveletFamily().is_from(wavelet) or wavelets.BSplineWaveletFamily().is_from(wavelet):
            dec = wtutils.uiwt
            rec = wtutils.uiwt_inv
        else:
            dec = wtutils.uwt
            rec = wtutils.uwt_inv

        denoise = Denoise(wavelet, self.scale.get(), self.boundary, dec, rec, mode=self.mode.get(), thread=thread)
        img = self.img.get()

        if changed in [self.img, self.noise_level] or self.noisy is None:
            self.noisy = img.data + nputils.gaussian_noise(img.data.shape, 0, self.noise_level.get())

        estimated_noise_sigma = nputils.k_sigma_noise_estimation(self.noisy)
        print "Estimated noise:", estimated_noise_sigma

        denoised = denoise.do(self.noisy, estimated_noise_sigma, threashold_factor=self.threashold_factor.get())
        # denoised = nputils.smooth(self.noisy, 9, mode="same", boundary="symm")

        if not thread.is_alive() or denoised == None:
            return False

        return (img, imgutils.Image.from_image(img, self.noisy), imgutils.Image.from_image(img, denoised))
示例#2
0
 def get_noise_factor(self, frame, noise_sigma, noise):
     if not self._noise_res:
         if noise is None:
             noise = nputils.gaussian_noise([300, 300], 0, noise_sigma)
         res = self.decompose(noise)
         if res is None:
             return None
         self._noise_res = [k.std() for k in itertools.chain(*res)]
     return self._noise_res[frame]
示例#3
0
 def get_noise_factor(self, frame, noise_sigma, noise):
     if not self._noise_res:
         if noise is None:
             noise = nputils.gaussian_noise([300, 300], 0, noise_sigma)
         res = self.decompose(noise)
         if res is None:
             return None
         self._noise_res = [k.std() for k in itertools.chain(*res)]
     return self._noise_res[frame]
示例#4
0
    def update(self, changed, thread):
        wavelet = self.wavelet.get()
        if wavelets.TriangeWaveletFamily().is_from(
                wavelet) or wavelets.BSplineWaveletFamily().is_from(wavelet):
            dec = wtutils.uiwt
            rec = wtutils.uiwt_inv
        else:
            dec = wtutils.uwt
            rec = wtutils.uwt_inv

        denoise = Denoise(wavelet,
                          self.scale.get(),
                          self.boundary,
                          dec,
                          rec,
                          mode=self.mode.get(),
                          thread=thread)
        img = self.img.get()

        if changed in [self.img, self.noise_level] or self.noisy is None:
            self.noisy = img.data + nputils.gaussian_noise(
                img.data.shape, 0, self.noise_level.get())

        estimated_noise_sigma = nputils.k_sigma_noise_estimation(self.noisy)
        print "Estimated noise:", estimated_noise_sigma

        denoised = denoise.do(self.noisy,
                              estimated_noise_sigma,
                              threashold_factor=self.threashold_factor.get())
        # denoised = nputils.smooth(self.noisy, 9, mode="same", boundary="symm")

        if not thread.is_alive() or denoised is None:
            return False

        return (img, imgutils.Image.from_image(img, self.noisy),
                imgutils.Image.from_image(img, denoised))