Verified with: ```py myIterativeMean = iterativeMean() print(myIterativeMean.mean) myIterativeMean.addElement(2) print(myIterativeMean.mean) myIterativeMean.addElement(3) print(myIterativeMean.mean) ``` Note that cannot simplify as follows in the general case of using images as `element`s for instance: ```diff diff --git a/datasets/raise/utils.py b/datasets/raise/utils.py index fba5523..a116edb 100644 --- a/datasets/raise/utils.py +++ b/datasets/raise/utils.py @@ -27,12 +27,9 @@ def denoise(imageNpArray, denoiserName): return imageDenoisedNpArray class iterativeMean(): - mean = None + mean = 0 numberOfElementsInMean = 0 def addElement(self, element): - if self.mean is None: - self.mean = element - else: - self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1) + self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1) self.numberOfElementsInMean += 1 \ No newline at end of file ```
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from enum import Enum, auto
|
|
import skimage.restoration
|
|
|
|
class Color(Enum):
|
|
RED = auto()
|
|
GREEN_RIGHT = auto()
|
|
GREEN_BOTTOM = auto()
|
|
BLUE = auto()
|
|
|
|
def __str__(self):
|
|
return self.name.lower()
|
|
|
|
# Among:
|
|
# - `wavelet`
|
|
# - `bilateral`
|
|
# - `tv_chambolle`
|
|
def denoise(imageNpArray, denoiserName):
|
|
skImageRestorationDenoise = getattr(skimage.restoration, f'denoise_{denoiserName}')
|
|
|
|
match denoiserName:
|
|
case 'wavelet':
|
|
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, rescale_sigma=True)
|
|
case 'bilateral':
|
|
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, sigma_color=0.05, sigma_spatial=15)
|
|
case 'tv_chambolle':
|
|
imageDenoisedNpArray = skImageRestorationDenoise(imageNpArray, weight=0.2)
|
|
return imageDenoisedNpArray
|
|
|
|
class iterativeMean():
|
|
mean = 0
|
|
numberOfElementsInMean = 0
|
|
|
|
def addElement(self, element):
|
|
self.mean = ((self.mean * self.numberOfElementsInMean) + element) / (self.numberOfElementsInMean + 1)
|
|
self.numberOfElementsInMean += 1 |