diff --git a/datasets/fake/generate_dataset.py b/datasets/fake/generate_dataset.py index a6d419f..cb09315 100644 --- a/datasets/fake/generate_dataset.py +++ b/datasets/fake/generate_dataset.py @@ -13,16 +13,17 @@ from context_adaptive_interpolator import contextAdaptiveInterpolator IMAGE_SIZE = 64 +# Is such `np.maximum` probabilistically correct with our theoretical method? def randomImage(scale): return np.maximum(np.random.normal(loc = 0, scale = scale, size = (IMAGE_SIZE, IMAGE_SIZE)), 0) prnu = randomImage(scale = 1) -images = [randomImage(scale = 10) + prnu for _ in range(10)] +images = [randomImage(scale = 10) + prnu for _ in range(100)] allImages = [prnu] + images def toPilImage(npArray): - npArray = np.round(255 * npArray / np.max(allImages)) + npArray = (255 * npArray / np.max(allImages)).round() return Image.fromarray(np.uint8(npArray)) prnu = toPilImage(prnu) @@ -31,7 +32,13 @@ prnu = toPilImage(prnu) images = [toPilImage(image) for image in images] #images[0].show() -for image in images: +caiImages = [contextAdaptiveInterpolator(image.load(), image) for image in images] +for image, caiImage in zip(images, caiImages): initialRmsDiff = rmsdiff(image, prnu) - caiRmsDiff = rmsdiff(contextAdaptiveInterpolator(image.load(), image), prnu) - print(f'{initialRmsDiff=} {caiRmsDiff=}') \ No newline at end of file + caiRmsDiff = rmsdiff(caiImage, prnu) + #print(f'{initialRmsDiff=} {caiRmsDiff=}') + +print('RMS diff with average image =', rmsdiff(toPilImage(np.array(images).mean(axis = 0)), prnu)) +# Should be better than above one. Maybe not the case here as the images are Gaussian noise. +print('RMS diff with average CAI images =', rmsdiff(toPilImage(np.array(caiImages).mean(axis = 0)), prnu)) +