diff --git a/datasets/raise/extract_noise.py b/datasets/raise/extract_noise.py index 1fb0cb1..5e00882 100755 --- a/datasets/raise/extract_noise.py +++ b/datasets/raise/extract_noise.py @@ -33,35 +33,30 @@ if requiresRaiseFiltering: imagesFileNames = [imageFileName for imageFileName in tqdm(imagesFileNames, 'Filtering images') if files[imageFileName]['Device'] == 'Nikon D7000' and Image.open(f'{imagesFolderPath}/{imageFileName}').size == (4946, 3278)] +maxGreen = None + def treatImage(imageFileName): - global mean, numberOfImagesInMean + global mean, numberOfImagesInMean, maxGreen imageFilePath = f'{imagesFolderPath}/{imageFileName}' if imageFileName.endswith('.NEF'): - imageFileName = 'ra2c888f8t.NEF' - imageFilePath = f'{imagesFolderPath}/{imageFileName}' - print(imageFilePath) with rawpy.imread(imageFilePath) as raw: colorDesc = raw.color_desc.decode('ascii') assert colorDesc == 'RGBG' - assert np.array_equal(raw.raw_pattern, np.array([[3, 2], [0, 1]], dtype = np.uint8)) + assert np.array_equal(raw.raw_pattern, np.array([[0, 1], [3, 2]], dtype = np.uint8)) rawImageVisible = raw.raw_image_visible.copy() - centerY = 2263 - centerX = 237 - RANGE = 5 - rawImageVisible = rawImageVisible.astype(np.float64) - rawImageVisibleShape = rawImageVisible.shape - for y in range(0, rawImageVisibleShape[0], 2): - for x in range(0, rawImageVisibleShape[1], 2): - rawImageVisible[y, x] *= -1 - print(rawImageVisible[centerY - RANGE:centerY + RANGE, centerX - RANGE:centerX + RANGE]) - #greenRawImageVisible = raw.rawImageVisible + greenRawImageVisible = rawImageVisible[1::2, ::2] + greenRawImageVisibleMax = greenRawImageVisible.max() + if maxGreen is None or greenRawImageVisibleMax > maxGreen: + maxGreen = greenRawImageVisibleMax + print(f'{maxGreen=}') + imageNpArray = greenRawImageVisible # Pay attention to range of values expected by the denoiser. - exit(1) + #exit(1) else: imagePil = Image.open(imageFilePath) imageNpArray = img_as_float(np.array(imagePil)) # As the arguments differ from a denoiser to the other should use a match instead. - imageDenoisedNpArray = denoise(imageNpArray, channel_axis=-1, convert2ycbcr=True, rescale_sigma=True) + imageDenoisedNpArray = denoise(imageNpArray, rescale_sigma=True) imageNoiseNpArray = imageNpArray - imageDenoisedNpArray if mean is None: mean = imageNoiseNpArray