-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun_resampling_experiment.py
More file actions
executable file
·123 lines (100 loc) · 4.69 KB
/
run_resampling_experiment.py
File metadata and controls
executable file
·123 lines (100 loc) · 4.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# ================================================================
# Created by Gregory Kramida on 1/22/19.
# Copyright (c) 2019 Gregory Kramida
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ================================================================
# stdlib
import sys
# libs
import numpy as np
# local
import tsdf.ewa as ewa
import tsdf.generation as gen
import experiment.dataset as data
import utils.visualization as viz
# =========
import cv2
import matplotlib.pyplot as plt
from calib.camerarig import DepthCameraRig
EXIT_CODE_SUCCESS = 0
EXIT_CODE_FAILURE = 1
def main():
save_profile = False
fraction_field = False
image_choice = 2
if fraction_field or image_choice == 1:
image_path = "/media/algomorph/Data/Reconstruction/synthetic_data/zigzag/depth/depth_00064.png"
z_offset = 480 # zigzag - 64
else:
image_path = "/media/algomorph/Data/Reconstruction/synthetic_data/zigzag2/input/depth_00108.png"
z_offset = 0 # zigzag2 - 108
# depth_interpolation_method = gen.GenerationMethod.NONE
# depth_interpolation_method = gen.GenerationMethod.EWA_IMAGE
# depth_interpolation_method = gen.GenerationMethod.EWA_IMAGE_CPP
# depth_interpolation_method = gen.GenerationMethod.EWA_TSDF
# depth_interpolation_method = gen.GenerationMethod.EWA_TSDF_CPP
# depth_interpolation_method = gen.GenerationMethod.EWA_TSDF_INCLUSIVE
depth_interpolation_method = gen.GenerationMethod.EWA_TSDF_INCLUSIVE_CPP
if save_profile:
im = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
sl = im[200]
plt.figure(figsize=(40, 30))
plt.plot(sl, "k")
filename = "../output/image_slice_plot.png"
plt.savefig(filename)
plt.clf()
plt.close("all")
else:
if fraction_field:
voxel_size = 0.004
field_size = 16
# field_size = 64
# offset = np.array([94, -256, 804])
offset = np.array([-232, -256, 490])
rig = DepthCameraRig.from_infinitam_format(
"/media/algomorph/Data/Reconstruction/synthetic_data/zigzag/inf_calib.txt")
depth_camera = rig.depth_camera
depth_image0 = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
max_depth = np.iinfo(np.uint16).max
depth_image0[depth_image0 == 0] = max_depth
field = \
gen.generate_2d_tsdf_field_from_depth_image(depth_image0, depth_camera, 200,
field_size=field_size,
array_offset=offset,
interpolation_method=depth_interpolation_method,
voxel_size=voxel_size,
smoothing_coefficient=0.5
)
print(repr(field))
else:
voxel_size = 0.004
field_size = 512
rig = DepthCameraRig.from_infinitam_format(
"/media/algomorph/Data/Reconstruction/synthetic_data/zigzag/inf_calib.txt")
depth_camera = rig.depth_camera
depth_image0 = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
max_depth = np.iinfo(np.uint16).max
depth_image0[depth_image0 == 0] = max_depth
field = \
gen.generate_2d_tsdf_field_from_depth_image(depth_image0, depth_camera, 200,
field_size=field_size,
array_offset=np.array([-256, -256, z_offset]),
interpolation_method=depth_interpolation_method,
voxel_size=voxel_size,
smoothing_coefficient=0.5)
print(repr(field[103:119, 210:226]))
# print(repr(field[102:120, 209:226]))
viz.visualize_field(field, view_scaling_factor=2)
return EXIT_CODE_SUCCESS
if __name__ == "__main__":
sys.exit(main())