From 9b61463cb1ea17e51167fdcfa135556cc435d37f Mon Sep 17 00:00:00 2001 From: Akhilesh Halageri Date: Wed, 11 Jan 2023 16:24:51 +0000 Subject: [PATCH] scale normalization --- pychunkedgraph/meshing/meshgen.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pychunkedgraph/meshing/meshgen.py b/pychunkedgraph/meshing/meshgen.py index c9c7ec453..e5aaffbcc 100644 --- a/pychunkedgraph/meshing/meshgen.py +++ b/pychunkedgraph/meshing/meshgen.py @@ -1,4 +1,4 @@ -# pylint: disable=invalid-name, missing-docstring, no-member, too-many-lines, c-extension-no-member, bare-except +# pylint: disable=invalid-name, missing-docstring, no-member, too-many-lines, c-extension-no-member, bare-except, not-callable from typing import Sequence import os @@ -37,19 +37,22 @@ def simplify(cg, new_fragment, new_fragment_id: np.uint64 = None): Simplify with pyfqmr; input and output flat vertices and faces. """ - v = new_fragment["vertices"].reshape(-1, 3) - f = new_fragment["faces"].reshape(-1, 3) - l2factor = int(os.environ.get("l2factor", "2")) factor = int(os.environ.get("factor", "4")) aggressiveness = float(os.environ.get("aggr", "7.0")) + v = new_fragment["vertices"].reshape(-1, 3) + f = new_fragment["faces"].reshape(-1, 3) + layer = cg.get_chunk_layer(new_fragment_id) if layer == 2: target_count = max(int(len(f) / l2factor), 4) else: target_count = max(int(len(f) / factor), 4) + scale = (2 ** (layer - 2)) * np.array(cg.meta.graph_config.CHUNK_SIZE, dtype=int) + v = v / scale + simplifier = pyfqmr.Simplify() simplifier.setMesh(v, f) simplifier.simplify_mesh( @@ -59,6 +62,7 @@ def simplify(cg, new_fragment, new_fragment_id: np.uint64 = None): verbose=False, ) v, f, _ = simplifier.getMesh() + v = v * scale new_fragment["vertices"] = v.flatten() new_fragment["faces"] = f.flatten() return new_fragment