wordpress滑动图片轮播,福州百度seo,企业型网站建设制作平台,微商分销系统怎么做前面我们介绍了使用AABB方式来框选点云#xff0c;但这种方式还是不够直观#xff0c;我们的构想是设计一个和o3d.visualization.VisualizerWithEditing的点云框选方法一样的软件#xff0c;因此#xff0c;博主想到利用投影的形式进行解决#xff1a; 具体的#xff0c;…前面我们介绍了使用AABB方式来框选点云但这种方式还是不够直观我们的构想是设计一个和o3d.visualization.VisualizerWithEditing的点云框选方法一样的软件因此博主想到利用投影的形式进行解决 具体的我们点击屏幕获取一个矩形框随后将点云由3D投影到2D那么最终坐标在2D矩形框内的点云即为我们选择的实现代码如下 fx self.screen_width / 2.0fy self.screen_height / 2.0# 光心通常是图像的中心cx self.screen_width / 2.0cy self.screen_height / 2.0#相机设置camera_intrinsics o3d.camera.PinholeCameraIntrinsic(self.screen_width, self.screen_height, fx, fy, cx, cy)valid_indices []intrinsics camera_intrinsicspointsnp.asarray(self.pcd.points)for i in range(points.shape[0]):x, y, z points[i]# 将3D点投影回2D图像坐标matrixintrinsics.intrinsic_matrixuvz np.dot(matrix,np.array([x, y, z]))u, v uvz[:2] / uvz[2]if min_x u max_x and min_y v max_y:valid_indices.append(i)# 提取选框内的点云colorsnp.asarray(self.pcd.colors)idxnp.asarray(valid_indices)colors[idx,:]self.colorself.pcd.colors o3d.utility.Vector3dVector(colors)似乎这样的逻辑并没有什么问题但将3D点云向2D屏幕投影他的坐标是固定的也就是说每个点云的点在加载后其往屏幕的投影就是确定的那么在我们框选过程中当点云经过旋转、平移、缩放等操作后他的投影依旧不会变化这就导致其根本不能实现框选操作。