Skip to content

Commit d995399

Browse files
author
arch
committed
add yaw, roll and fov to procection settings
1 parent 3a7eacd commit d995399

File tree

2 files changed

+103
-18
lines changed

2 files changed

+103
-18
lines changed

funscript_editor/algorithms/funscriptgenerator.py

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -583,33 +583,58 @@ def get_vr_projection_config(self, image :np.ndarray) -> dict:
583583
if image.shape[0] > 3000 or image.shape[1] > 3000:
584584
image = cv2.resize(image, None, fx=0.5, fy=0.5)
585585

586+
ui_texte = []
587+
if "keys" in config.keys():
588+
for param in config['keys'].keys():
589+
if param in config['parameter'].keys() and all(x in config["keys"][param].keys() for x in ["increase", "decrease"]):
590+
ui_texte.append("Use '{}', '{}' to increase/decrease {}".format(
591+
config["keys"][param]["increase"],
592+
config["keys"][param]["decrease"],
593+
param)
594+
)
595+
586596
self.clear_keypress_queue()
587597
parameter_changed, selected = True, False
588598
while not selected:
589599
if parameter_changed:
590600
parameter_changed = False
591601
preview = FFmpegStream.get_projection(image, config)
592602

593-
preview = self.draw_text(preview, "Press 'q' to use current selected region of interest)",
603+
preview = self.draw_text(preview, "Press 'space' to use current selected region of interest)",
594604
y = 50, color = (255, 0, 0))
595-
preview = self.draw_text(preview, "VR Projection: Use 'w', 's' to move up/down to the region of interest",
596-
y = 75, color = (0, 255, 0))
605+
preview = self.draw_text(preview, "Press '0' (NULL) to reset view)",
606+
y = 75, color = (255, 0, 0))
607+
for line, txt in enumerate(ui_texte):
608+
preview = self.draw_text(preview, txt, y = 100 + (line * 25), color = (0, 255, 0))
597609

598610
cv2.imshow(self.window_name, self.preview_scaling(preview))
599611

600612
while self.keypress_queue.qsize() > 0:
601613
pressed_key = '{0}'.format(self.keypress_queue.get())
602-
if pressed_key == "'q'":
614+
if pressed_key == "Key.space":
603615
selected = True
604616
break
605-
elif pressed_key == "'w'":
606-
config['parameter']['phi'] = min((80, config['parameter']['phi'] + 5))
607-
parameter_changed = True
608-
elif pressed_key == "'s'":
609-
config['parameter']['phi'] = max((-80, config['parameter']['phi'] - 5))
617+
618+
if pressed_key == "'0'":
619+
config = copy.deepcopy(PROJECTION[self.params.projection])
610620
parameter_changed = True
621+
break
622+
623+
if "keys" not in config.keys():
624+
break
625+
626+
for param in config['keys'].keys():
627+
if param in config['parameter'].keys() and all(x in config["keys"][param].keys() for x in ["increase", "decrease"]):
628+
if pressed_key == "'" + config["keys"][param]["increase"] + "'":
629+
config['parameter'][param] += 5
630+
parameter_changed = True
631+
break
632+
elif pressed_key == "'" + config["keys"][param]["decrease"] + "'":
633+
config['parameter'][param] -= 5
634+
parameter_changed = True
635+
break
611636

612-
if cv2.waitKey(1) in [ord('q')]: break
637+
if cv2.waitKey(1) in [ord(' ')]: break
613638

614639
self.__show_loading_screen(preview.shape)
615640
return config

funscript_editor/config/projection.yaml

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,99 @@
44

55
vr_he_180_sbs:
66
name: '3D VR Video 180'
7-
video_filter: 'v360=input=he:in_stereo=sbs:pitch=${phi}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
7+
video_filter: 'v360=input=he:in_stereo=sbs:pitch=${pitch}:yaw=${yaw}:roll=${roll}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
88
parameter:
99
height: 720
1010
width: 1240
1111
fov: 100
12-
phi: -45
12+
pitch: -45
13+
yaw: 0
14+
roll: 0
15+
keys:
16+
pitch:
17+
increase: "w"
18+
decrease: "s"
19+
yaw:
20+
increase: "d"
21+
decrease: "a"
22+
roll:
23+
increase: "e"
24+
decrease: "q"
25+
fov:
26+
increase: "-"
27+
decrease: "+"
1328

1429
vr_he_180_ou:
1530
name: '3D VR Video 180 (Vertical)'
16-
video_filter: 'v360=input=he:in_stereo=tb:pitch=${phi}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
31+
video_filter: 'v360=input=he:in_stereo=tb:pitch=${pitch}:yaw=${yaw}:roll=${roll}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
1732
parameter:
1833
height: 720
1934
width: 1240
2035
fov: 100
21-
phi: -45
36+
pitch: -45
37+
yaw: 0
38+
roll: 0
39+
keys:
40+
pitch:
41+
increase: "w"
42+
decrease: "s"
43+
yaw:
44+
increase: "d"
45+
decrease: "a"
46+
roll:
47+
increase: "e"
48+
decrease: "q"
49+
fov:
50+
increase: "-"
51+
decrease: "+"
2252

2353
vr_fisheye_200_sbs:
2454
name: '3D VR Video Fisheye 200'
25-
video_filter: 'v360=input=fisheye:in_stereo=sbs:id_fov=200:pitch=${phi}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
55+
video_filter: 'v360=input=fisheye:in_stereo=sbs:id_fov=200:pitch=${pitch}:yaw=${yaw}:roll=${roll}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
2656
parameter:
2757
height: 720
2858
width: 1240
2959
fov: 100
30-
phi: -45
60+
pitch: -45
61+
yaw: 0
62+
roll: 0
63+
keys:
64+
pitch:
65+
increase: "w"
66+
decrease: "s"
67+
yaw:
68+
increase: "d"
69+
decrease: "a"
70+
roll:
71+
increase: "e"
72+
decrease: "q"
73+
fov:
74+
increase: "-"
75+
decrease: "+"
3176

3277
vr_equirect_360_ou:
3378
name: '3D VR Video 360 (Vertical)'
34-
video_filter: 'v360=input=equirect:in_stereo=tb:pitch=${phi}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
79+
video_filter: 'v360=input=equirect:in_stereo=tb:pitch=${pitch}:yaw=${yaw}:roll=${roll}:output=flat:d_fov=${fov}:w=${width}:h=${height}'
3580
parameter:
3681
height: 720
3782
width: 1240
3883
fov: 100
39-
phi: -45
84+
pitch: -45
85+
yaw: 0
86+
roll: 0
87+
keys:
88+
pitch:
89+
increase: "w"
90+
decrease: "s"
91+
yaw:
92+
increase: "d"
93+
decrease: "a"
94+
roll:
95+
increase: "e"
96+
decrease: "q"
97+
fov:
98+
increase: "-"
99+
decrease: "+"
40100

41101
flat:
42102
name: '2D Video'

0 commit comments

Comments
 (0)