Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion opendm/photo.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ def __init__(self, path_file):
self.camera_projection = 'brown'
self.focal_ratio = 0.85

# Sensor identifier
self.serial_number = 'unknown'

# parse values from metadata
self.parse_exif_values(path_file)

Expand Down Expand Up @@ -300,7 +303,12 @@ def parse_exif_values(self, _path_file):
'EXIF ExifImageLength' in tags:
self.exif_width = self.int_value(tags['EXIF ExifImageWidth'])
self.exif_height = self.int_value(tags['EXIF ExifImageLength'])


if 'EXIF LensSerialNumber' in tags:
self.serial_number = tags['EXIF LensSerialNumber'].values if tags['EXIF LensSerialNumber'].values else 'unknown'
elif 'EXIF BodySerialNumber' in tags:
self.serial_number = tags['EXIF BodySerialNumber'].values if tags['EXIF BodySerialNumber'].values else 'unknown'

except Exception as e:
log.ODM_WARNING("Cannot read extended EXIF tags for %s: %s" % (self.filename, str(e)))

Expand Down Expand Up @@ -478,6 +486,9 @@ def parse_exif_values(self, _path_file):
if self.camera_make.lower() == 'sensefly':
self.roll *= -1

# Serial number
self.set_attr_from_xmp_tag('serial_number', xtags, ['@drone-dji:CameraSerialNumber', '@drone-dji:DroneSerialNumber'], str)

except Exception as e:
log.ODM_WARNING("Cannot read XMP tags for %s: %s" % (self.filename, str(e)))

Expand Down Expand Up @@ -818,6 +829,7 @@ def camera_id(self):
str(int(self.height)),
self.camera_projection,
str(float(self.focal_ratio))[:6],
self.serial_number.strip()
]
).lower()

Expand Down
Loading