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))
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]
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))