Skip to content

Commit ee646cc

Browse files
committed
new filenames
1 parent fe90f1b commit ee646cc

File tree

2 files changed

+62
-33
lines changed

2 files changed

+62
-33
lines changed

Utilities/FileNames.py

+34-7
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,10 @@
5151
from glob import glob
5252
import json
5353
from os.path import exists, isdir
54-
from os import mkdir
55-
import numpy as np
54+
from os import mkdir, walk
5655

5756

58-
class HandleFileNames:
57+
class FileNames:
5958
def __init__(self, path, img_type="png"):
6059
"""Make directories/filenames
6160
@param path: the top level path
@@ -376,18 +375,46 @@ def read_filenames(fname, path=None):
376375
if not path:
377376
path = my_data["path"]
378377

379-
handle_files = HandleFileNames(path)
378+
handle_files = FileNames(path)
380379
for k, v in my_data.items():
381380
setattr(handle_files, k, v)
382381

383382
return handle_files
384383

385384

386385
if __name__ == '__main__':
386+
from shutil import copyfile
387+
b_get_box_files = False
388+
if b_get_box_files:
389+
dest_path = "../Image_based/data/EnvyTree/"
390+
if not exists(dest_path):
391+
mkdir(dest_path)
392+
393+
tree_search_path = f"/Users/cindygrimm/MyBox/Robotic pruning and thinning/Datasets/2023/Jan 2023 Azure and ZED Videos/OSU Envy Orchard/"
394+
for (root, dirs, files) in walk(tree_search_path, topdown=True):
395+
follow_path_name = root[len(tree_search_path):]
396+
path_pieces = str.split(follow_path_name, "/")
397+
if "depth" in path_pieces[-1]:
398+
continue
399+
sub_dir_name = "_".join(path_pieces[0:-1])
400+
count = 0
401+
files.sort()
402+
n_skip = 10 #max(1, len(files) // 10)
403+
for nf, ff in enumerate(files):
404+
if ff[-4:] == ".png" and nf % n_skip == 0:
405+
if not exists(dest_path + "/" + sub_dir_name):
406+
mkdir(dest_path + "/" + sub_dir_name)
407+
copyfile(root + "/" + ff, dest_path + "/" + sub_dir_name + "/" + ff)
408+
print(f"{ff}")
409+
410+
path_bpd_envy = "../Image_based/data/EnvyTree/"
411+
all_files_envy = FileNames(path_bpd_envy, img_type="png")
412+
all_files_envy.add_sub_directories()
413+
all_files_envy.write_filenames(path_bpd_envy + "envy_fnames.json")
387414
# Example bb
388415
"""
389416
path_bpd = "./data/blueberries/"
390-
all_files = HandleFileNames(path_bpd, img_type="jpg")
417+
all_files = FileNames(path_bpd, img_type="jpg")
391418
all_files.add_directory(name_filter="rgb", name_separator="_")
392419
all_files.add_mask_images(["all"])
393420
all_files.write_filenames("./data/blueberries_fnames.json")
@@ -396,7 +423,7 @@ def read_filenames(fname, path=None):
396423
# Example 2
397424
fname_for_json_file = "../Image_based/data/forcindy_fnames.json"
398425
path_bpd = "../Image_based/data/forcindy/"
399-
all_files = HandleFileNames(path=path_bpd, img_type="png")
426+
all_files = FileNames(path=path_bpd, img_type="png")
400427
all_files.mask_names = ["trunk", "sidebranch"]
401428
# Filename is, eg, 0.png
402429
all_files.add_directory()
@@ -420,4 +447,4 @@ def read_filenames(fname, path=None):
420447
all_files_trunk.check_names()
421448
"""
422449

423-
check_read = HandleFileNames.read_filenames(fname_for_json_file)
450+
check_read = FileNames.read_filenames(fname_for_json_file)

sketch_curves_gui/Sketch_curves_main_window.py

+28-26
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@
1010
import sys
1111
sys.path.insert(0, os.path.abspath('./'))
1212
sys.path.insert(0, os.path.abspath('./Image_based'))
13+
sys.path.insert(0, os.path.abspath('./Utilities'))
1314
sys.path.insert(0, os.path.abspath('./sketch_curves_gui'))
14-
sys.path.insert(0, os.path.abspath('../'))
15-
sys.path.insert(0, os.path.abspath('../Image_based'))
1615
from os.path import exists
1716

1817
from MySliders import SliderIntDisplay, SliderFloatDisplay
1918
from Draw_spline_3D import DrawSpline3D
20-
from HandleFileNames import HandleFileNames
19+
from FileNames import FileNames
2120

2221
from extract_curves import ExtractCurves
2322
from fit_bezier_cyl_2d_sketch import FitBezierCyl2DSketch
@@ -75,8 +74,8 @@ def _init_left_layout_(self):
7574
path_names_layout = QGridLayout()
7675
path_names_layout.setColumnMinimumWidth(0, 40)
7776
path_names_layout.setColumnMinimumWidth(1, 200)
78-
self.path_name = QLineEdit("/Users/cindygrimm/PycharmProjects/treefitting/Image_based/data/forcindy/")
79-
self.file_name = QLineEdit("forcindy_fnames.json")
77+
self.path_name = QLineEdit("/Users/cindygrimm/PycharmProjects/treefitting/Image_based/data/EnvyTree/")
78+
self.file_name = QLineEdit("envy_fnames.json")
8079
self.sub_dir_number = SliderIntDisplay("Sub dir", 0, 10, 0)
8180
self.image_number = SliderIntDisplay("Image", 0, 10, 0)
8281
self.mask_number = SliderIntDisplay("Mask", 0, 3, 0)
@@ -319,6 +318,12 @@ def reset_file_menus(self):
319318
self.mask_number.slider.maximum(),
320319
self.mask_id_number.slider.maximum())
321320
print(f"Sliders orig {sldr_maxs_orig}")
321+
if self.sub_dir_number.slider.maximum() > len(self.handle_filenames.sub_dirs):
322+
self.sub_dir_number.slider.setMaximum(len(self.handle_filenames.sub_dirs))
323+
b_changed = True
324+
if indx_sub_dir >= self.sub_dir_number.slider.maximum():
325+
indx_sub_dir = 0
326+
322327
if self.image_number.slider.maximum() != len(self.handle_filenames.image_names[indx_sub_dir]):
323328
self.image_number.slider.setMaximum(len(self.handle_filenames.image_names[indx_sub_dir]))
324329
b_changed = True
@@ -327,8 +332,8 @@ def reset_file_menus(self):
327332
indx_image = 0
328333
self.image_number.set_value(indx_image)
329334

330-
if self.mask_number.slider.maximum() != len(self.handle_filenames.mask_names[indx_sub_dir][indx_image]):
331-
self.mask_number.slider.setMaximum(len(self.handle_filenames.mask_names[indx_sub_dir][indx_image]))
335+
if self.mask_number.slider.maximum() != len(self.handle_filenames.mask_names):
336+
self.mask_number.slider.setMaximum(len(self.handle_filenames.mask_names))
332337
b_changed = True
333338
print(f" Changing mask number {self.mask_number.slider.maximum()} {indx_mask}")
334339
if indx_mask >= self.mask_number.slider.maximum():
@@ -372,9 +377,7 @@ def get_file_name_tuple(self):
372377

373378
def read_file_names(self):
374379
fname = self.path_name.text() + self.file_name.text()
375-
self.handle_filenames = HandleFileNames.read_filenames(fname)
376-
self.sub_dir_number.slider.setMaximum(len(self.handle_filenames.image_names))
377-
self.sub_dir_number.slider.setValue(0)
380+
self.handle_filenames = FileNames.read_filenames(fname)
378381
self.reset_file_menus()
379382
self.read_images()
380383
self.reset_params_menus()
@@ -431,10 +434,10 @@ def new_curve(self):
431434
ret_index = self.handle_filenames.add_mask_name(self.last_index, self.mask_name.toPlainText())
432435
self.last_index = self.handle_filenames.add_mask_id(ret_index)
433436

434-
rgb_fname = self.handle_filenames.get_image_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
435-
edge_fname = self.handle_filenames.get_edge_image_name(path=self.handle_filenames.path_calculated, index=self.last_index, b_optical_flow=True, b_add_tag=True)
436-
mask_fname = self.handle_filenames.get_mask_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
437-
fname_calculate = self.handle_filenames.get_mask_name(path= self.handle_filenames.path_calculated, index=self.last_index, b_add_tag=False)
437+
rgb_fname = self.handle_filenames.get_image_name(index=self.last_index, b_add_tag=True)
438+
edge_fname = self.handle_filenames.get_edge_image_name(index=self.last_index, b_optical_flow=True, b_add_tag=True)
439+
mask_fname = self.handle_filenames.get_mask_name(b_add_tag=True)
440+
fname_calculate = self.handle_filenames.get_mask_name(index=self.last_index, b_debug_path=True, b_add_tag=False)
438441

439442
# Actually convert the curve
440443
width_rgb_image = self.crv.image_rgb.shape[1]
@@ -474,16 +477,15 @@ def set_corners(self):
474477
def set_crv(self, params):
475478
"""Read in the images etc and recalc (or not)
476479
@param params - if None, recalculate"""
477-
print(f"{self.handle_filenames.get_image_name(self.handle_filenames.path, index=self.last_index, b_add_tag=True)}")
480+
print(f"{self.handle_filenames.get_image_name(index=self.last_index, b_add_tag=True)}")
478481

479-
rgb_fname = self.handle_filenames.get_image_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
480-
edge_fname = self.handle_filenames.get_edge_image_name(path=self.handle_filenames.path_calculated, index=self.last_index, b_optical_flow=True, b_add_tag=True)
481-
mask_fname = self.handle_filenames.get_mask_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
482-
edge_fname_debug = self.handle_filenames.get_mask_name(path=self.handle_filenames.path_debug, index=self.last_index, b_add_tag=False)
482+
rgb_fname = self.handle_filenames.get_image_name(index=self.last_index, b_add_tag=True)
483+
edge_fname = self.handle_filenames.get_edge_image_name(index=self.last_index, b_optical_flow=True, b_add_tag=True)
484+
mask_fname = self.handle_filenames.get_mask_name(index=self.last_index, b_add_tag=True)
485+
edge_fname_debug = self.handle_filenames.get_mask_name(index=self.last_index, b_debug_path=True, b_add_tag=False)
483486
print(f"{rgb_fname}\n{mask_fname}")
484487

485-
edge_fname_calculate = self.handle_filenames.get_mask_name(path=self.handle_filenames.path_calculated,
486-
index=self.last_index,
488+
edge_fname_calculate = self.handle_filenames.get_edge_name(index=self.last_index,
487489
b_add_tag=False)
488490

489491
if not exists(mask_fname):
@@ -503,10 +505,10 @@ def set_crv(self, params):
503505
b_recalc=b_recalc)
504506
self.crv = self.extract_crv.bezier_edge
505507

506-
depth_fname = self.handle_filenames.get_depth_image_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
508+
depth_fname = self.handle_filenames.get_depth_image_name(index=self.last_index, b_add_tag=True)
507509
if exists(depth_fname):
508-
depth_fname_calculate = self.handle_filenames.get_mask_name(path=self.handle_filenames.path_calculated, index=self.last_index, b_add_tag=False)
509-
depth_fname_debug = self.handle_filenames.get_mask_name(path=self.handle_filenames.path_debug, index=self.last_index, b_add_tag=False)
510+
depth_fname_calculate = self.handle_filenames.get_mask_name(index=self.last_index, b_add_tag=False)
511+
depth_fname_debug = self.handle_filenames.get_mask_name(index=self.last_index, b_debug_path=True, b_add_tag=False)
510512
params = {"camera_width_angle": self.horizontal_angle.value()}
511513
self.fit_crv_3d = FitBezierCyl3dDepth(depth_fname, self.crv.bezier_crv_fit_to_edge,
512514
params=params,
@@ -522,8 +524,8 @@ def read_images(self):
522524
b_get_image, self.last_index = self.reset_file_menus()
523525
print(f" masks {self.handle_filenames.mask_ids[self.last_index[0]][self.last_index[1]][self.last_index[2]]}")
524526
if b_get_image:
525-
image_flow_name = self.handle_filenames.get_flow_image_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
526-
image_depth_name = self.handle_filenames.get_depth_image_name(path=self.handle_filenames.path, index=self.last_index, b_add_tag=True)
527+
image_flow_name = self.handle_filenames.get_flow_image_name(index=self.last_index, b_add_tag=True)
528+
image_depth_name = self.handle_filenames.get_depth_image_name(index=self.last_index, b_add_tag=True)
527529

528530
if exists(image_flow_name):
529531
image_flow = cv2.imread(image_flow_name)

0 commit comments

Comments
 (0)