【问题标题】:Parsing image of a point cloud with opencv用opencv解析点云的图像
【发布时间】:2017-08-27 06:22:35
【问题描述】:

我有一个point cloud 并想从中提取点的坐标。

以下 python opencv (3.2.0-dev) 脚本用于提取。

image = cv2.imread(PIC_FILE)
image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
_,image_thres = cv2.threshold(image_gray, 230, 255, cv2.THRESH_BINARY)
image_thres = 255 - image_thres
pixelpoints = np.transpose(np.nonzero(image_thres))

但问题是,对于一个点,在图片中包含多个像素,我得到多个点坐标。

目前len(pixelpoints)的值约为9000,这似乎比我们在图片中看到的要多。

如何将这些多个像素折叠成一个坐标,例如,它是一个点的中心?

【问题讨论】:

    标签: python opencv numpy image-processing feature-extraction


    【解决方案1】:

    我很确定您将无法使用您提供的图像实现预期的结果。至少,精度不高。给定第一个像素点的结果如下:

    [ 13 118][ 13 125][ 13 126][ 13 127][ 13 131][ 13 132][ 13 133][ 14 117][ 14 118][ 14 119][ 14 123][ 14 124][ 14 125][ 14 126][ 14 127][ 14 131][ 14 132][ 14 133]

    您当然可以根据其中一个轴对它们进行分组。您还可以设置与单个点相关的最大像素点数。但是,您的图像还包括多个区域,这些区域中的点全部重叠在一起,因此您永远无法确定这些区域中有多少个点。此外,这些点的形状并不相似,有些是 3 像素宽,有些只有 2 像素,等等。它们一直在旋转。

    总体而言.. 您可能可以微调您的猜测,但您不会得到与当前图像的完美匹配。

    PS:虽然我对颠簸不太熟悉..也许它有一些功能可以创建更好的估计,但这些算法仍然很可能通过提供的图像实现有根据的猜测。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2020-06-24
      • 2013-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多