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