kopia lustrzana https://github.com/OpenDroneMap/ODM
Fix limit_files
rodzic
9932742920
commit
64b687a3a6
|
@ -7,6 +7,7 @@ import cv2
|
|||
import os
|
||||
import collections
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
import piexif
|
||||
from opendm import log
|
||||
from opendm.video.srtparser import SrtFileParser
|
||||
|
@ -154,8 +155,8 @@ class Video2Dataset:
|
|||
if resolution < w or resolution < h:
|
||||
m = max(w, h)
|
||||
factor = resolution / m
|
||||
frame_bw = cv2.resize(frame_bw, (int(ceil(w * factor)), int(ceil(h * factor))))
|
||||
|
||||
frame_bw = cv2.resize(frame_bw, (int(ceil(w * factor)), int(ceil(h * factor))), interpolation=cv2.INTER_NEAREST)
|
||||
|
||||
if (self.blur_checker is not None):
|
||||
blur_score, is_blurry = self.blur_checker.IsBlur(frame_bw, self.frame_index)
|
||||
res["blur_score"] = blur_score
|
||||
|
@ -201,7 +202,7 @@ class Video2Dataset:
|
|||
if max_dim < w or max_dim < h:
|
||||
m = max(w, h)
|
||||
factor = max_dim / m
|
||||
frame = cv2.resize(frame, (int(ceil(w * factor)), int(ceil(h * factor))))
|
||||
frame = cv2.resize(frame, (int(ceil(w * factor)), int(ceil(h * factor))), interpolation=cv2.INTER_AREA)
|
||||
|
||||
path = os.path.join(self.parameters.output,
|
||||
"{}_{}_{}.{}".format(video_info.basename, self.global_idx, self.frame_index, self.parameters.frame_format))
|
||||
|
@ -289,24 +290,21 @@ def float_to_rational(f):
|
|||
return (f.numerator, f.denominator)
|
||||
|
||||
def limit_files(paths, limit):
|
||||
|
||||
cnt = len(paths)
|
||||
num_to_delete = cnt - limit
|
||||
|
||||
if num_to_delete <= 0:
|
||||
if len(paths) <= limit:
|
||||
return paths
|
||||
|
||||
skip = floor(num_to_delete / limit) if num_to_delete > cnt else ceil(cnt / num_to_delete)
|
||||
|
||||
|
||||
to_keep = []
|
||||
all_idxes = np.arange(0, len(paths))
|
||||
keep_idxes = np.linspace(0, len(paths) - 1, limit, dtype=int)
|
||||
remove_idxes = set(all_idxes) - set(keep_idxes)
|
||||
|
||||
for i in range(len(paths)):
|
||||
if i % skip == 0:
|
||||
os.remove(paths[i])
|
||||
else:
|
||||
to_keep.append(paths[i])
|
||||
p = np.array(paths)
|
||||
to_keep = list(p[keep_idxes])
|
||||
|
||||
return limit_files(to_keep, limit)
|
||||
for idx in remove_idxes:
|
||||
os.remove(paths[idx])
|
||||
|
||||
return to_keep
|
||||
|
||||
def to_deg(value, loc):
|
||||
"""convert decimal coordinates into degrees, munutes and seconds tuple
|
||||
|
|
Ładowanie…
Reference in New Issue