From 162e5c99eb55236e0a9b970ca0d6ac92788af22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Fri, 4 Aug 2023 12:08:38 +0200 Subject: [PATCH] [nodes] HDR Fusion: Fix bracket detection Prior to this commit, only the shutter speed was compared between two images to determine whether they belonged to the same group. The fnumber and ISO were assumed to be fixed within a group, which is not always true, and differs from what is done on the AliceVision's side. This commit aligns Meshroom's bracket detection with AliceVision's. --- meshroom/nodes/aliceVision/LdrToHdrCalibration.py | 3 +-- meshroom/nodes/aliceVision/LdrToHdrMerge.py | 3 +-- meshroom/nodes/aliceVision/LdrToHdrSampling.py | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/meshroom/nodes/aliceVision/LdrToHdrCalibration.py b/meshroom/nodes/aliceVision/LdrToHdrCalibration.py index 5dbd7530..3d10baac 100644 --- a/meshroom/nodes/aliceVision/LdrToHdrCalibration.py +++ b/meshroom/nodes/aliceVision/LdrToHdrCalibration.py @@ -238,7 +238,7 @@ Calibrate LDR to HDR response curve from samples. fnumber, shutterSpeed, iso = exp if exposures: prevFnumber, prevShutterSpeed, prevIso = exposures[-1] - if exposures and len(exposures) > 1 and (fnumber != prevFnumber or shutterSpeed > prevShutterSpeed or iso != prevIso) or newGroup: + if exposures and len(exposures) > 1 and (fnumber > prevFnumber or shutterSpeed > prevShutterSpeed or iso < prevIso) or newGroup: exposureGroups.append(exposures) exposures = [exp] else: @@ -273,5 +273,4 @@ Calibrate LDR to HDR response curve from samples. bestTuple = tuple if tuple[0] > bestTuple[0] else bestTuple bestBracketSize = bestTuple[0] - bestCount = bestTuple[1] node.nbBrackets.value = bestBracketSize diff --git a/meshroom/nodes/aliceVision/LdrToHdrMerge.py b/meshroom/nodes/aliceVision/LdrToHdrMerge.py index 62dbc434..1a4ad837 100644 --- a/meshroom/nodes/aliceVision/LdrToHdrMerge.py +++ b/meshroom/nodes/aliceVision/LdrToHdrMerge.py @@ -324,7 +324,7 @@ Merge LDR images into HDR images. fnumber, shutterSpeed, iso = exp if exposures: prevFnumber, prevShutterSpeed, prevIso = exposures[-1] - if exposures and len(exposures) > 1 and (fnumber != prevFnumber or shutterSpeed > prevShutterSpeed or iso != prevIso) or newGroup: + if exposures and len(exposures) > 1 and (fnumber > prevFnumber or shutterSpeed > prevShutterSpeed or iso < prevIso) or newGroup: exposureGroups.append(exposures) exposures = [exp] else: @@ -359,7 +359,6 @@ Merge LDR images into HDR images. bestTuple = tuple if tuple[0] > bestTuple[0] else bestTuple bestBracketSize = bestTuple[0] - bestCount = bestTuple[1] node.nbBrackets.value = bestBracketSize def processChunk(self, chunk): diff --git a/meshroom/nodes/aliceVision/LdrToHdrSampling.py b/meshroom/nodes/aliceVision/LdrToHdrSampling.py index 61e09714..36c0c78d 100644 --- a/meshroom/nodes/aliceVision/LdrToHdrSampling.py +++ b/meshroom/nodes/aliceVision/LdrToHdrSampling.py @@ -264,7 +264,7 @@ Sample pixels from Low range images for HDR creation. fnumber, shutterSpeed, iso = exp if exposures: prevFnumber, prevShutterSpeed, prevIso = exposures[-1] - if exposures and len(exposures) > 1 and (fnumber != prevFnumber or shutterSpeed > prevShutterSpeed or iso != prevIso) or newGroup: + if exposures and len(exposures) > 1 and (fnumber > prevFnumber or shutterSpeed > prevShutterSpeed or iso < prevIso) or newGroup: exposureGroups.append(exposures) exposures = [exp] else: