zensvi.transform.PointCloudProcessor ==================================== .. py:class:: zensvi.transform.PointCloudProcessor(image_folder: str, depth_folder: str, output_coordinate_scale: float = 45, depth_max: float = 255, log_path: Union[str, pathlib.Path] = None) A class for processing images and depth maps to generate point clouds. This class provides functionality to load image and depth data, convert them into 3D point clouds, and perform various operations on the resulting point clouds. It supports batch processing of multiple images and offers options for scaling and depth normalization. :param image_folder: Path to the folder containing color images. :type image_folder: Path :param depth_folder: Path to the folder containing depth images. :type depth_folder: Path :param output_coordinate_scale: Scaling factor for the output coordinates. :type output_coordinate_scale: float :param depth_max: Maximum depth value for normalization. :type depth_max: float :param logger: Optional logger for tracking operations and errors. :type logger: Logger .. py:method:: convert_to_point_cloud(depth_img, color_img, depth_max) Converts a single depth and color image pair to a point cloud. :param depth_img: The depth image. :type depth_img: np.ndarray :param color_img: The corresponding color image. :type color_img: np.ndarray :param depth_max: Maximum value for depth normalization. :type depth_max: float :returns: The generated point cloud with color. :rtype: o3d.geometry.PointCloud .. py:method:: transform_point_cloud(pcd, origin_x, origin_y, angle, box_extent, box_center) Transforms the point cloud by translating, rotating, and cropping based on given parameters. :param pcd: The point cloud to transform. :type pcd: o3d.geometry.PointCloud :param origin_x: X coordinate for translation. :type origin_x: float :param origin_y: Y coordinate for translation. :type origin_y: float :param angle: Rotation angle in radians. :type angle: float :param box_extent: Extent of the oriented bounding box. :type box_extent: List[float] :param box_center: Center of the oriented bounding box. :type box_center: List[float] :returns: Transformed point cloud. :rtype: o3d.geometry.PointCloud .. py:method:: save_point_cloud_csv(pcd, output_path) Saves the point cloud in CSV format. :param pcd: The point cloud to save. :type pcd: o3d.geometry.PointCloud :param output_path: Path to save the CSV file. :type output_path: str .. py:method:: save_point_cloud_numpy(pcd, output_path) Saves the point cloud as a NumPy array. :param pcd: The point cloud to save. :type pcd: o3d.geometry.PointCloud :param output_path: Path to save the NumPy array. :type output_path: str .. py:method:: process_multiple_images(data, output_dir=None, save_format='pcd') Generates a point cloud for each entry in the data based on pre-loaded depth and color images. :param data: DataFrame containing image ids, coordinates, and headings. :type data: DataFrame :param output_dir: Path to the output directory to save point clouds. :type output_dir: str :param save_format: Format to save point clouds ('pcd', 'ply', 'npz', 'csv'). :type save_format: str :returns: List of unprocessed point clouds with color information if output_dir is None. :rtype: List[o3d.geometry.PointCloud] .. py:method:: visualize_point_cloud(pcd) Visualizes a point cloud using Plotly. :param pcd: The point cloud object to visualize. :type pcd: o3d.geometry.PointCloud