kopia lustrzana https://github.com/OpenDroneMap/ODM
add new resize method
rodzic
de5d4a3bc5
commit
72e0043abb
|
@ -0,0 +1,49 @@
|
|||
import cv2
|
||||
import pyexiv2
|
||||
|
||||
import log
|
||||
import system
|
||||
import dataset
|
||||
|
||||
def resize(images_dir, args, photos):
|
||||
|
||||
log.ODM_DEBUG('Preparing images - %s' % images_dir)
|
||||
|
||||
if len(photos) < 1:
|
||||
log.ODM_ERROR('Not enough photos in photos to resize')
|
||||
return False
|
||||
|
||||
# create directory for resized images
|
||||
images_resize_dir = dataset.join_paths(images_dir, 'images_resize')
|
||||
system.mkdir_p(images_resize_dir)
|
||||
|
||||
# define the new size
|
||||
new_size = (args['resize_to'], args['resize_to'])
|
||||
|
||||
for photo in photos:
|
||||
try:
|
||||
# open and resize image with opencv
|
||||
img = cv2.imread(photo.path_file)
|
||||
img_r = cv2.resize(img, new_size)
|
||||
# write image with opencv
|
||||
new_path_file = dataset.join_paths(images_resize_dir, photo.file_name)
|
||||
cv2.imwrite(new_path_file, img_r)
|
||||
# read metadata
|
||||
old_meta = pyexiv2.ImageMetadata(photo.path_file)
|
||||
old_meta.read()
|
||||
new_meta = pyexiv2.ImageMetadata(new_path_file)
|
||||
new_meta.read()
|
||||
# copy metadata
|
||||
old_meta.copy(new_meta)
|
||||
new_meta.write()
|
||||
# log message
|
||||
log.ODM_DEBUG('Resized image %s | dimensions: %s' % \
|
||||
(photo.file_name, img_r.shape))
|
||||
except cv2.error as e:
|
||||
# something went wrong with this image
|
||||
log.ODM_ERROR('Could not resize image %s' % photo.file_name)
|
||||
log.ODM_ERROR('%s' % e)
|
||||
return False
|
||||
|
||||
log.ODM_DEBUG('Resized %s images' % len(photos))
|
||||
return True
|
Ładowanie…
Reference in New Issue