diff --git a/docs/figs/lvl7_2D.png b/docs/figs/lvl7_2D.png new file mode 100644 index 0000000..4914ca8 Binary files /dev/null and b/docs/figs/lvl7_2D.png differ diff --git a/docs/slides.md b/docs/slides.md index 99134fc..cf5f4b0 100644 --- a/docs/slides.md +++ b/docs/slides.md @@ -20,3 +20,19 @@ title: Bureau d'étude de PI3D Sujet 6 - Reformulation du MVS par level sets --- + +## Level sets ? + + + +--- + +## Exemple Level sets 2D + + + + + + Variational principles, surface evolution, PDEs, level set methods, and the stereo problem - Olivier Faugeras, Renaud Keriven, 1998 + + diff --git a/src/blender/render.py b/src/blender/render.py index 991f28b..be9babd 100644 --- a/src/blender/render.py +++ b/src/blender/render.py @@ -1,9 +1,10 @@ -import bpy -import math import itertools +import math import pathlib import pickle import sys + +import bpy import numpy as np # dirty hack to import proj.py @@ -17,15 +18,15 @@ from proj import get_3x4_P_matrix_from_blender EXPORT_PATH = pathlib.Path("/tmp/") # setup camera poses -phis = [-45, 0, 45] -thetas = [0, 45, 90, 135, 180, 225, 270, 315] +rotsY = range(-45, 45 + 1, 20) +rotsZ = range(-45, 45 + 1, 20) # convert to radians -phis = [math.radians(phi) for phi in phis] -thetas = [math.radians(theta) for theta in thetas] +rotsY = [math.radians(rotY) for rotY in rotsY] +rotsZ = [math.radians(rotZ) for rotZ in rotsZ] # create all possible combinations -poses = list(itertools.product(phis, thetas)) +poses = list(itertools.product(rotsY, rotsZ)) # create export folders pathlib.Path(EXPORT_PATH / "images").mkdir(parents=True, exist_ok=True) @@ -39,12 +40,12 @@ bpy.data.scenes["Scene"].node_tree.nodes["Mask Output"].base_path = str(EXPORT_P # get camera cam = bpy.data.objects["Camera"] -for i, (phi, theta) in enumerate(poses): +for i, (rotY, rotZ) in enumerate(poses): print(f"Rendering pose {i}...") # set camera pose - bpy.context.scene.objects["Empty"].rotation_euler[0] = phi - bpy.context.scene.objects["Empty"].rotation_euler[2] = theta + bpy.context.scene.objects["Empty"].rotation_euler[1] = rotY + bpy.context.scene.objects["Empty"].rotation_euler[2] = rotZ # fuck you blender and your stupid shit bpy.context.view_layer.update()