Using matplotlib clipping

This commit is contained in:
2024-07-04 04:11:12 +02:00
parent d24c883a92
commit 98426db9dd

View File

@@ -24,7 +24,7 @@ datasetPath = 'no_noise_images'
# Note that contrarily to `datasets/fake/`, here we do not have images being Gaussian with `scale` `1` but actual images with pixel values between 0 and 255. # Note that contrarily to `datasets/fake/`, here we do not have images being Gaussian with `scale` `1` but actual images with pixel values between 0 and 255.
# In addition to the range difference, note that the distribution in the first set of images was a Gaussian and here is very different and specific. # In addition to the range difference, note that the distribution in the first set of images was a Gaussian and here is very different and specific.
PRNU_FACTOR = 0.01 PRNU_FACTOR = 0.01
NOISE_FACTOR = 0.1 NOISE_FACTOR = 0.2
np.random.seed(0) np.random.seed(0)
@@ -34,8 +34,9 @@ SPLIT_N_X_N_S = [1, 2, 4]
fig, axes = plt.subplots(2, 4) fig, axes = plt.subplots(2, 4)
fig.suptitle('PRNU estimation with different number of images having Gaussian noise and Gaussian noised PRNU') fig.suptitle('PRNU estimation with different number of images having Gaussian noise and Gaussian noised PRNU')
def axisImShow(axis, im): def axisImShow(axis, im, vExtremes = [None, None]):
imShow = axis.imshow(im) vMin, vMax = vExtremes
imShow = axis.imshow(im, vmin = vMin, vmax = vMax)
plt.colorbar(imShow, label = 'Intensity', ax = axis, orientation = 'horizontal') plt.colorbar(imShow, label = 'Intensity', ax = axis, orientation = 'horizontal')
for splitNXNIndex, splitNXN in enumerate(SPLIT_N_X_N_S): for splitNXNIndex, splitNXN in enumerate(SPLIT_N_X_N_S):
@@ -77,13 +78,13 @@ for splitNXNIndex, splitNXN in enumerate(SPLIT_N_X_N_S):
axis[1].set_title('First image Gaussian noise') axis[1].set_title('First image Gaussian noise')
axisImShow(axis[1], imageNoise) axisImShow(axis[1], imageNoise)
axis[2].set_title('First image with Gaussian noise') axis[2].set_title('First image with Gaussian noise\nClipped between 0 and 255')
axisImShow(axis[2], np.clip(imageWithoutPrnuNpArray + imageNoise, 0, 255)) axisImShow(axis[2], np.clip(imageWithoutPrnuNpArray + imageNoise, 0, 255))
axis[3].set_title('Actual Gaussian noised PRNU') axis[3].set_title('Actual Gaussian noised PRNU\nClipped between -1 and 1')
axisImShow(axis[3], prnuNpArray) axisImShow(axis[3], prnuNpArray, [-1, 1])
axes[1][0].set_title('First image with Gaussian noise and PRNU') axes[1][0].set_title('First image with Gaussian noise and PRNU\nClipped between 0 and 255')
axisImShow(axes[1][0], np.clip(imageWithoutPrnuNpArray + prnuNpArray + imageNoise, 0, 255)) axisImShow(axes[1][0], np.clip(imageWithoutPrnuNpArray + prnuNpArray + imageNoise, 0, 255))
isFirstImage = False isFirstImage = False