Add PRNU estimation computation

This commit is contained in:
Benjamin Loison 2024-06-05 16:27:40 +02:00
parent 38eca8e65c
commit be83fcf154
Signed by: Benjamin_Loison
SSH Key Fingerprint: SHA256:BtnEgYTlHdOg1u+RmYcDE0mnfz1rhv5dSbQ2gyxW8B8

View File

@ -8,21 +8,23 @@ sys.path.insert(0, '../')
from utils import isARawImage, Color, getColorChannel, mergeSingleColorChannelImagesAccordingToBayerFilter, iterativeMean
#images = []
folder = '../rafael/230424'
meanImages = iterativeMean()
filePaths = [f'{folder}/{file}' for file in os.listdir(folder) if isARawImage(file)]
for file in tqdm(os.listdir(folder)):
if isARawImage(file):
#print(file)
filePath = f'{folder}/{file}'
imageColorChannels = {color: getColorChannel(filePath, color) for color in Color}
imageMergedColorChannels = mergeSingleColorChannelImagesAccordingToBayerFilter(imageColorChannels)
#images += [imageMergedColorChannels]
meanImages.add(imageMergedColorChannels)
for filePath in tqdm(filePaths):
imageColorChannels = {color: getColorChannel(filePath, color) for color in Color}
imageMergedColorChannels = mergeSingleColorChannelImagesAccordingToBayerFilter(imageColorChannels)
meanImages.add(imageMergedColorChannels)
#print(np.mean(images, axis = 0).shape)
print(meanImages.shape)
#print(meanImages.mean.shape)
plt.imshow()
# Is not there anything clever than this to do? See [Robust_image_source_identification_on_modern_smartphones/issues/72](https://gitea.lemnoslife.com/Benjamin_Loison/Robust_image_source_identification_on_modern_smartphones/issues/72).
estimatedPrnu = iterativeMean()
for filePath in tqdm(filePaths):
imageColorChannels = {color: getColorChannel(filePath, color) for color in Color}
imageMergedColorChannels = mergeSingleColorChannelImagesAccordingToBayerFilter(imageColorChannels)
estimatedPrnu.add(imageMergedColorChannels - meanImages.mean)
plt.imshow(estimatedPrnu.mean)
plt.show()