Add analyze_bayer_filter_mean_denoiser.py

This commit is contained in:
Benjamin Loison 2024-04-26 04:12:13 +02:00
parent f1cafc1eb1
commit 3e8b607b97
Signed by: Benjamin_Loison
SSH Key Fingerprint: SHA256:BtnEgYTlHdOg1u+RmYcDE0mnfz1rhv5dSbQ2gyxW8B8

View File

@ -0,0 +1,44 @@
import numpy as np
from utils import Color
import os
from tqdm import tqdm
import rawpy
import matplotlib.pyplot as plt
'''
for color in Color:
#if color == 'green_bottom':
# continue
print(color)
'''
os.chdir('flat-field/NEF')
firstBayerFilterOccurrenceImages = []
for fileName in tqdm(os.listdir()):
with rawpy.imread(fileName) as raw:
colorDesc = raw.color_desc.decode('ascii')
assert colorDesc == 'RGBG'
assert np.array_equal(raw.raw_pattern, np.array([[0, 1], [3, 2]], dtype = np.uint8))
# RG
# GB
firstBayerFilterOccurrenceImage = raw.raw_image_visible.copy()[:2, :2]
firstBayerFilterOccurrenceImages += [firstBayerFilterOccurrenceImage]
firstBayerFilterOccurrenceImages = np.array(firstBayerFilterOccurrenceImages)
print(rawImageVisible)
NUMBER_OF_COLORS = 3
HEX_COLOR = '#' + '%02x' * NUMBER_OF_COLORS
COLOR_BASE = 256
def getColor(colorIndex):
return HEX_COLOR % tuple((255 if colorIndex == colorIndexTmp else 0) for colorIndexTmp in range(NUMBER_OF_COLORS))
#X, Y = np.histogram(firstBayerFilterOccurrenceImages[:,0,0])
#plt.plot(X, Y)
for colorIndex, (colorY, colorX) in enumerate([(0, 0), (0, 1), (1, 1)]):
X = firstBayerFilterOccurrenceImages[:, colorY, colorX] - np.mean(firstBayerFilterOccurrenceImages, axis = 0)[colorY, colorX]
plt.hist(X, bins = len(set(X)), color = getColor(colorIndex), alpha = 0.3)
plt.show()