(mesh, edge_ccs, config, specific_edge_id, specific_edge_loc, depth_feat_model,
connect_points_ccs=None, inpaint_iter=0, filter_edge=False, vis_edge_id=None)
| 908 | return mesh, info_on_pix, edge_mesh, depth, mark |
| 909 | |
| 910 | def context_and_holes(mesh, edge_ccs, config, specific_edge_id, specific_edge_loc, depth_feat_model, |
| 911 | connect_points_ccs=None, inpaint_iter=0, filter_edge=False, vis_edge_id=None): |
| 912 | edge_maps = np.zeros((mesh.graph['H'], mesh.graph['W'])) - 1 |
| 913 | mask_info = {} |
| 914 | for edge_id, edge_cc in enumerate(edge_ccs): |
| 915 | for edge_node in edge_cc: |
| 916 | edge_maps[edge_node[0], edge_node[1]] = edge_id |
| 917 | |
| 918 | context_ccs = [set() for x in range(len(edge_ccs))] |
| 919 | extend_context_ccs = [set() for x in range(len(edge_ccs))] |
| 920 | extend_erode_context_ccs = [set() for x in range(len(edge_ccs))] |
| 921 | extend_edge_ccs = [set() for x in range(len(edge_ccs))] |
| 922 | accomp_extend_context_ccs = [set() for x in range(len(edge_ccs))] |
| 923 | erode_context_ccs = [set() for x in range(len(edge_ccs))] |
| 924 | broken_mask_ccs = [set() for x in range(len(edge_ccs))] |
| 925 | invalid_extend_edge_ccs = [set() for x in range(len(edge_ccs))] |
| 926 | intouched_ccs = [set() for x in range(len(edge_ccs))] |
| 927 | redundant_ccs = [set() for x in range(len(edge_ccs))] |
| 928 | if inpaint_iter == 0: |
| 929 | background_thickness = config['background_thickness'] |
| 930 | context_thickness = config['context_thickness'] |
| 931 | else: |
| 932 | background_thickness = config['background_thickness_2'] |
| 933 | context_thickness = config['context_thickness_2'] |
| 934 | |
| 935 | mesh_nodes = mesh.nodes |
| 936 | for edge_id, edge_cc in enumerate(edge_ccs): |
| 937 | if context_thickness == 0 or (len(specific_edge_id) > 0 and edge_id not in specific_edge_id): |
| 938 | continue |
| 939 | edge_group = {} |
| 940 | for edge_node in edge_cc: |
| 941 | far_nodes = mesh_nodes[edge_node].get('far') |
| 942 | if far_nodes is None: |
| 943 | continue |
| 944 | for far_node in far_nodes: |
| 945 | if far_node in edge_cc: |
| 946 | continue |
| 947 | context_ccs[edge_id].add(far_node) |
| 948 | if mesh_nodes[far_node].get('edge_id') is not None: |
| 949 | if edge_group.get(mesh_nodes[far_node]['edge_id']) is None: |
| 950 | edge_group[mesh_nodes[far_node]['edge_id']] = set() |
| 951 | edge_group[mesh_nodes[far_node]['edge_id']].add(far_node) |
| 952 | if len(edge_cc) > 2: |
| 953 | for edge_key in [*edge_group.keys()]: |
| 954 | if len(edge_group[edge_key]) == 1: |
| 955 | context_ccs[edge_id].remove([*edge_group[edge_key]][0]) |
| 956 | for edge_id, edge_cc in enumerate(edge_ccs): |
| 957 | if inpaint_iter != 0: |
| 958 | continue |
| 959 | tmp_intouched_nodes = set() |
| 960 | for edge_node in edge_cc: |
| 961 | raw_intouched_nodes = set(mesh_nodes[edge_node].get('near')) if mesh_nodes[edge_node].get('near') is not None else set() |
| 962 | tmp_intouched_nodes |= set([xx for xx in raw_intouched_nodes if mesh_nodes[xx].get('edge_id') is not None and \ |
| 963 | len(context_ccs[mesh_nodes[xx].get('edge_id')]) > 0]) |
| 964 | intouched_ccs[edge_id] |= tmp_intouched_nodes |
| 965 | tmp_intouched_nodes = None |
| 966 | mask_ccs = copy.deepcopy(edge_ccs) |
| 967 | forbidden_len = 3 |
no test coverage detected