从手的图像获取信息

时间:2013-01-31 10:54:21

标签: java image-processing

我正在尝试制作一个小型软件,它将人手的扫描图像作为输入,并将根据手相原理预测未来。 我想就如何准确获得手头各条线的坐标提出一些建议。 该方法应保持通用,因为我没有特定的图像集,它应该适用于所有图像。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我建议使用java.lang.Palmistry包,也可以与java.lang.FuturePrediction包结合使用。

除了所有的笑话,这是一个可能有用的建议:

  1. 要求提交者用低光源和一侧的光源拍摄他们的手,这将在手中的浅脊上投下阴影,为您提供更好的输入信号。手。
  2. 其次对图像的位图数据使用某种边缘检测或边缘增强。这可以使用非常标准的convolution matrix kernel filter来实现,否则称为Sobel operator
  3. 您可能需要将图像裁剪到一个区域,该区域通常只是手掌上的方形窗口,除非未来也是用手指线写的。
  4. 最后,要获得线条和坐标,您可能需要查看图像矢量化:the Hough transform特别有效,但vectorization algorithms from Microsoft Researcha survey paper from 2000'Outliner', an open source edge finder and vectorizer也可能有用。
    使用边缘增强图像数据,然后使用这些参考中描述的方法之一将其转换为一组向量,将至少为您提供一些数学公式,以及对于存在的线的坐标。然后,您可以将手分成感兴趣的片段,并检索这些片段中存在的行的公式。
  5. 将公式与其一般形状匹配可以通过某种有监督的机器学习来完成,您感兴趣的形状的示例是这些的训练数据。您可能还需要考虑使用Ramer-Douglas-Peucker algorithm来降低公式的复杂性,作为其中的一个额外步骤。
  6. 希望这会有所帮助。顺便说一句,如果您对未来有任何有用的了解,请务必告诉我们!

答案 1 :(得分:0)

你能给出一个示例图像吗?

它可能会涉及blurringband-passing图像,以便仅保留相关的对比度(即,模糊将消除太小的线条和皱纹,带通将会也消除了太大的功能。

之后,您可以使用Hough Transform查找图片中线条的长度和方向。

或者,它可能是检测线/皱纹/较暗区域然后skeletonize图像的可行方法。这将为您提供行的分支和终点。