From b375acbb3a2bb9b6159fa784982f52be06fec086 Mon Sep 17 00:00:00 2001 From: Benjamin Loison Date: Fri, 29 Mar 2024 12:11:41 +0100 Subject: [PATCH] Use `v{min,max}` for enforcing matplotlib colormap If it proceeds linearly to *covers the complete value range of the supplied data* then doing so is unnecessary and even if it is another not very different scale transformation then it is still fine for my goal. --- algorithms/image_utils/image_utils.py | 5 +++-- datasets/noise_free_test_images/estimate_prnu.py | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/algorithms/image_utils/image_utils.py b/algorithms/image_utils/image_utils.py index aa87568..7a0e495 100644 --- a/algorithms/image_utils/image_utils.py +++ b/algorithms/image_utils/image_utils.py @@ -5,10 +5,11 @@ from matplotlib import pyplot as plt def randomGaussianImage(scale, size): return np.random.normal(loc = 0, scale = scale, size = size) -def showImageWithMatplotlib(npArray, title = None): +# `cmap` source: https://matplotlib.org/3.8.0/api/_as_gen/matplotlib.pyplot.imshow.html +def showImageWithMatplotlib(npArray, title = None, cmap = 'viridis'): if title is not None: plt.title(title) - plt.imshow(npArray) + plt.imshow(npArray, cmap = cmap) plt.show() def toPilImage(npArray): diff --git a/datasets/noise_free_test_images/estimate_prnu.py b/datasets/noise_free_test_images/estimate_prnu.py index d6b4618..bc29312 100644 --- a/datasets/noise_free_test_images/estimate_prnu.py +++ b/datasets/noise_free_test_images/estimate_prnu.py @@ -62,5 +62,12 @@ for imageName in os.listdir(datasetPath): cameraPrnuEstimateNpArray = np.array(imagesPrnuEstimateNpArray).mean(axis = 0) rms = rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray, True) -showImageWithMatplotlib(cameraPrnuEstimateNpArray, f'Camera PRNU estimate\nRMS with actual one: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray):.4f} (normalized RMS: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray, True):.4f})') +title = f'Camera PRNU estimate\nRMS with actual one: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray):.4f} (normalized RMS: {rmsDiffNumpy(cameraPrnuEstimateNpArray, prnuNpArray, True):.4f})' +showImageWithMatplotlib(cameraPrnuEstimateNpArray, title) +_256RangeCameraPrnuEstimateNpArray = cameraPrnuEstimateNpArray - cameraPrnuEstimateNpArray.min() +_256RangeCameraPrnuEstimateNpArray *= 255 / _256RangeCameraPrnuEstimateNpArray.max() + +#showImageWithMatplotlib(_256RangeCameraPrnuEstimateNpArray, title, 'gray') +plt.imshow(_256RangeCameraPrnuEstimateNpArray, cmap = 'gray', vmin = 0, vmax = 255) +plt.show() \ No newline at end of file