Return dowsampled normals Args: triangle_normals (np.ndarray): Triangle Normals down_sample_fraction (float, optional): Fraction to downsample. Defaults to 0.12. min_samples (int, optional): Minimum number of samples. Defaults to 10000. flip_normals (bool, option
(triangle_normals, down_sample_fraction=0.12, min_samples=10000, flip_normals=False, **kwargs)
| 39 | |
| 40 | |
| 41 | def down_sample_normals(triangle_normals, down_sample_fraction=0.12, min_samples=10000, flip_normals=False, **kwargs): |
| 42 | """Return dowsampled normals |
| 43 | |
| 44 | Args: |
| 45 | triangle_normals (np.ndarray): Triangle Normals |
| 46 | down_sample_fraction (float, optional): Fraction to downsample. Defaults to 0.12. |
| 47 | min_samples (int, optional): Minimum number of samples. Defaults to 10000. |
| 48 | flip_normals (bool, optional): Reverse the normals?. Defaults to False. |
| 49 | |
| 50 | Returns: |
| 51 | np.ndarray: NX3 downsampled normals |
| 52 | """ |
| 53 | num_normals = triangle_normals.shape[0] |
| 54 | to_sample = int(down_sample_fraction * num_normals) |
| 55 | to_sample = max(min([num_normals, min_samples]), to_sample) |
| 56 | ds_step = int(num_normals / to_sample) |
| 57 | triangle_normals_ds = np.ascontiguousarray(triangle_normals[:num_normals:ds_step, :]) |
| 58 | if flip_normals: |
| 59 | triangle_normals_ds = triangle_normals_ds * -1.0 |
| 60 | return triangle_normals_ds |
| 61 | |
| 62 | |
| 63 | def get_image_peaks(ico_chart, ga, level=2, with_o3d=False, |
no test coverage detected