通过360度旋转和图像处理获得POINT CLOUD

时间:2011-05-12 06:48:55

标签: algorithm math image-processing 3d scanning

我的问题如下两部分......

问题(简​​称):

•生成point cloud现实世界对象......

•通过360度旋转......旋转工作台

•获取360张图像...每个度数(1°至360°)一张图像。

•我知道如何处理图像并获取像素值。

•看下面的一张示例图片......你可以看到图像是黑白的...因为我必须处理闪亮的物体(闪闪发光)......而且它是DIAMOND。所以我设置了背景,使闪亮的物体(钻石)转换为B / W物体。因此,我可以轻松扫描物体的外边缘(例如钻石)。

•有一点要考虑的是我没有使用任何激光......我只使用一个旋转工作台和一个相机来拍摄图像......你可以在here上看到一个示例项目...但是MATLAB隐藏了所有的事情......因为那个人在内置功能中使用MATLAB。

其实我正在寻找数学例程或算法或任何帮助我了解如何获得点云的技术.......按照我提到的方式......

更多ELABORATION:

我需要拥有真实世界对象的点云。所以,我可以在电脑屏幕上显示它。

为此我使用一个旋转台。我会把我的物体放在它上面,我会旋转一个完整的360度旋转,我会拍摄360张图像......每个角度一张图像(1°到360°)。

用于拍摄图像的相机已经过很好的校准。我给出了一个样本图像,如下所示。我也知道如何扫描图像并获得它的像素值。

还要考虑到我的图像是Silhouette类型...仅表示黑白...没有彩色图像。

但我的问题是或者我被困在哪里......

获取点云对象......来自我通过图像处理得到的数据。

我在here找到的一个同类项目...... 但它只是使用内置的MATLAB函数......我正在使用Microsoft Visual C#.Net,所以我必须自己构建整个算法......因为MATLAB隐藏了我想知道的所有内容......

有没有主人.......谁知道这一切都很好,让我走出陷阱...... !!!! enter image description here

感谢.....

1 个答案:

答案 0 :(得分:1)

我没有这方面的经验,但如果我想做这样的事情,我会试过这个:

  1. 使用单色光源
  2. 如果可能,创建一个落在对象的薄Verticle切片上的光源。
  3. 具有360 B / W图像,那些图像将是具有变化强度的垂直线的图像。如果你使用matlab,你的矩阵将有一个带有sime值的列数。
  4. 现在假设一个垂直线(你的旋转轴)。 5绘图或转换(imageno,rownoOfMatrix,ValueInPopulatedColumnInSameRow)... [假设编号图像从0到360]
  5. 在理想条件下一个蹩脚的方法为了获得X和Y使用K1 * cos imgNo * ValInCol和K1 * sin imgNo * ValInCol,Z将是一些K2 * rowNum .. K1和K2可以在知道对象的实际大小时进行校准
  6. 我的意思是这样的: http://fab.cba.mit.edu/content/processes/structured_light/

    但不是使用单个垂直光的结构光

    http://www.geom.uiuc.edu/~samuelp/del_project.html此链接可能有助于三角测量...