diff --git a/algorithms/image_utils/image_utils.py b/algorithms/image_utils/image_utils.py index 5d81ff6..16afe67 100644 --- a/algorithms/image_utils/image_utils.py +++ b/algorithms/image_utils/image_utils.py @@ -16,13 +16,13 @@ def showImageWithMatplotlib(npArray, title = None, cmap = 'viridis'): def toPilImage(npArray): return Image.fromarray(npArray) -def getPrnuShownAsSuch(size): +def getPrnuShownAsSuch(size, gaussianNoise = 0): # Supports `WIDTH` > `HEIGHT` and conversely. WIDTH, HEIGHT = size TEXT = 'PRNU' - image = Image.new('L', size) - draw = ImageDraw.Draw(image) + imagePil = Image.new('L', size) + draw = ImageDraw.Draw(imagePil) fontPath = os.path.expanduser('~/.local/share/fonts/impact.ttf') for fontSize in range(1, HEIGHT + 1): font = ImageFont.truetype(fontPath, fontSize) @@ -30,4 +30,5 @@ def getPrnuShownAsSuch(size): break # Center vertically, especially in the case `HEIGHT` > `WIDTH`. draw.text((0, HEIGHT // 2 - fontSize // 2), TEXT, 255, font = font) - return np.array(image) \ No newline at end of file + imageNpArray = np.array(imagePil) + return imageNpArray + randomGaussianImage(gaussianNoise, size[::-1]) \ No newline at end of file diff --git a/datasets/noise_free_test_images/estimate_prnu.py b/datasets/noise_free_test_images/estimate_prnu.py index 6d5dc1f..5603c63 100644 --- a/datasets/noise_free_test_images/estimate_prnu.py +++ b/datasets/noise_free_test_images/estimate_prnu.py @@ -32,7 +32,10 @@ IMAGE_SIZE_SHAPE = [dimension // SPLIT_N_X_N for dimension in (704, 469)] np.random.seed(0) #prnuNpArray = 255 * randomGaussianImage(scale = PRNU_FACTOR, size = IMAGE_SIZE_SHAPE) -prnuNpArray = getPrnuShownAsSuch(IMAGE_SIZE_SHAPE) * PRNU_FACTOR +prnuNpArray = getPrnuShownAsSuch(IMAGE_SIZE_SHAPE, 100) * PRNU_FACTOR +showImageWithMatplotlib(prnuNpArray) + +## def isIn256Range(x): return 0 <= x and x <= 255