[nodes] HDR Fusion: Select group with largest bracket number in case of equality

If there are several groups with different bracket numbers but identical
counts (e.g. 3 groups with 7 brackets, and 3 groups with 3 brackets),
select the groups with the largest bracket number (e.g. groups with 7
brackets instead of 3).
This commit is contained in:
Candice Bentéjac 2023-07-20 11:44:57 +02:00
parent d30c619ec6
commit 00e29b06a3
3 changed files with 23 additions and 3 deletions

View file

@ -265,6 +265,13 @@ Calibrate LDR to HDR response curve from samples.
if len(bracketSizes) == 0:
node.nbBrackets.value = 0
else:
bestTuple = bracketSizes.most_common(1)[0]
bestTuple = None
for tuple in bracketSizes.most_common():
if bestTuple is None or tuple[1] > bestTuple[1]:
bestTuple = tuple
elif tuple[1] == bestTuple[1]:
bestTuple = tuple if tuple[0] > bestTuple[0] else bestTuple
bestBracketSize = bestTuple[0]
bestCount = bestTuple[1]
node.nbBrackets.value = bestBracketSize

View file

@ -351,8 +351,15 @@ Merge LDR images into HDR images.
if len(bracketSizes) == 0:
node.nbBrackets.value = 0
else:
bestTuple = bracketSizes.most_common(1)[0]
bestTuple = None
for tuple in bracketSizes.most_common():
if bestTuple is None or tuple[1] > bestTuple[1]:
bestTuple = tuple
elif tuple[1] == bestTuple[1]:
bestTuple = tuple if tuple[0] > bestTuple[0] else bestTuple
bestBracketSize = bestTuple[0]
bestCount = bestTuple[1]
node.nbBrackets.value = bestBracketSize
def processChunk(self, chunk):

View file

@ -291,7 +291,13 @@ Sample pixels from Low range images for HDR creation.
if len(bracketSizes) == 0:
node.nbBrackets.value = 0
else:
bestTuple = bracketSizes.most_common(1)[0]
bestTuple = None
for tuple in bracketSizes.most_common():
if bestTuple is None or tuple[1] > bestTuple[1]:
bestTuple = tuple
elif tuple[1] == bestTuple[1]:
bestTuple = tuple if tuple[0] > bestTuple[0] else bestTuple
bestBracketSize = bestTuple[0]
bestCount = bestTuple[1]
node.outliersNb = len(inputs) - (bestBracketSize * bestCount) # Compute number of outliers