mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-08-06 10:18:42 +02:00
[nodes] ldrToHdr: improve metadata search
This commit is contained in:
parent
aa7fed41b5
commit
2d0e17b026
1 changed files with 23 additions and 5 deletions
|
@ -5,6 +5,23 @@ import os
|
||||||
|
|
||||||
from meshroom.core import desc
|
from meshroom.core import desc
|
||||||
|
|
||||||
|
def findMetadata(d, keys, defaultValue):
|
||||||
|
v = None
|
||||||
|
for key in keys:
|
||||||
|
v = d.get(key, None)
|
||||||
|
k = key.lower()
|
||||||
|
if v != None:
|
||||||
|
return v
|
||||||
|
for dk, dv in d:
|
||||||
|
dkm = dk.lower().replace(" ", "")
|
||||||
|
if dkm == key.lower():
|
||||||
|
return dv
|
||||||
|
dkm = dkm.split(":")[-1]
|
||||||
|
dkm = dkm.split("/")[-1]
|
||||||
|
if dkm == k:
|
||||||
|
return dv
|
||||||
|
return defaultValue
|
||||||
|
|
||||||
|
|
||||||
class DividedInputNodeSize(desc.DynamicNodeSize):
|
class DividedInputNodeSize(desc.DynamicNodeSize):
|
||||||
"""
|
"""
|
||||||
|
@ -237,12 +254,13 @@ It is done in 2 steps:
|
||||||
node.nbBrackets.value = 0
|
node.nbBrackets.value = 0
|
||||||
return
|
return
|
||||||
d = json.loads(jsonMetadata)
|
d = json.loads(jsonMetadata)
|
||||||
fnumber = d.get("FNumber", d.get("Exif:ApertureValue", ""))
|
fnumber = findMetadata(d, ["FNumber", "Exif:ApertureValue", "ApertureValue", "Aperture"], "")
|
||||||
shutterSpeed = d.get("Exif:ShutterSpeedValue", "") # also "ExposureTime"?
|
shutterSpeed = findMetadata(d, ["Exif:ShutterSpeedValue", "ShutterSpeedValue", "ShutterSpeed"], "")
|
||||||
iso = d.get("Exif:ISOSpeedRatings", "")
|
iso = findMetadata(d, ["Exif:ISOSpeedRatings", "ISOSpeedRatings", "ISO"], "")
|
||||||
if not fnumber and not shutterSpeed:
|
if not fnumber and not shutterSpeed:
|
||||||
# if one image without shutter or fnumber, we cannot found the number of brackets
|
# If one image without shutter or fnumber, we cannot found the number of brackets.
|
||||||
node.nbBrackets.value = 0
|
# We assume that there is no multi-bracketing, so nothing to do.
|
||||||
|
node.nbBrackets.value = 1
|
||||||
return
|
return
|
||||||
inputs.append((viewpoint.path.value, (fnumber, shutterSpeed, iso)))
|
inputs.append((viewpoint.path.value, (fnumber, shutterSpeed, iso)))
|
||||||
inputs.sort()
|
inputs.sort()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue