调用matplotlib的tick_params导致点云数据读取被舍入的问题
matplotlib与open3d/numpy的意外交互:tick_params()影响点云数据打印精度
执行以下代码时,调用plt.tick_params(axis='both', labelsize=1)会导致后续读取的点云数据打印时被舍入为整数:
import matplotlib.pyplot as plt import numpy as np import open3d as o3d # 问题代码行 plt.tick_params(axis='both', labelsize=1) # 读取点云 pcd = o3d.io.read_point_cloud("../pointcloud_820_1880.pcd") points = np.asarray(pcd.points) print(points)
此时输出的点云数据为舍入后的整数形式:
[[ 829. 1899. 101.] [ 835. 1899. 112.] [ 831. 1899. 92.] ... [ 821. 1899. 77.] [ 821. 1899. 77.] [ 821. 1899. 77.]]
但注释掉该行后,输出的是点云文件实际包含的带小数的精确数据:
[[ 829.88127 1899.80715 101.29749] [ 835.85224 1899.55968 112.49222] [ 831.75095 1899.8053 92.93788] ... [ 821.95337 1899.16928 77.34216] [ 821.96948 1899.16988 77.6308 ] [ 821.97324 1899.17001 77.72527]]
请问这两者为何会产生干扰?
注:已在matplotlib官方仓库提交相关issue。
内容的提问来源于stack exchange,提问作者cmosig
相关产品推荐
相关产品推荐

