2013-01-31 151 views
2

我想製作一個小軟件,它將以人手的掃描圖像作爲輸入,並根據手相的原理預測未來。 我想就如何準確獲得手上各種線條的座標提供一些建議。 該方法應該保持通用,因爲我沒有特定的圖像集,它應該適用於所有的圖像。從手的圖像獲取信息

在此先感謝。

+1

看看霍夫變換 – BeRecursive

回答

2

我建議使用java.lang.Palmistry包,也可能與java.lang.FuturePrediction包結合使用。

所有玩笑不談,這裏是一個可能有用的建議:

  1. 向提議者與光源是低到一邊,這將在手投跨越淺脊陰影拍攝他們的手給你一個更好的輸入信號手的線。
  2. 其次使用某種邊緣檢測或邊緣增強的圖像的位圖數據。這可以用相當標準的convolution matrix kernel filter來實現,否則稱爲Sobel operator
  3. 您可能需要將圖像裁剪到大部分只是一個方形窗口的區域,除非未來也寫在手指的線條上。
  4. 最後,要獲得線條和座標,您可能需要查看圖像矢量化:the Hough transform特別有效,但vectorization algorithms from Microsoft Research,a survey paper from 2000'Outliner', an open source edge finder and vectorizer也可能有用。
    使用你的邊緣增強的圖像數據,然後將它轉換成一組矢量與這些參考文獻中描述的方法之一將給你至少一些數學公式,併爲線存在的座標。然後,您可以將手分成感興趣的片段並檢索存在於這些片段中的線的公式。
  5. 匹配公式到它們的一般形狀可以用某種有監督的機器學習來完成,例如你感興趣的形狀就是這些訓練數據。您也可以考慮使用Ramer-Douglas-Peucker algorithm作爲其中的一個額外步驟來降低公式的複雜性。

希望這會有所幫助。順便說一句,如果你對未來有任何有用的頭腦,一定要讓我們知道!

+0

謝謝克里斯,一旦我實現了每一件事,我都會讓你知道。 – user2028730

0

你能舉一個例子嗎?

它可能會涉及blurringband-passing的圖像,以便僅保留對比度的相關比例(即,模糊會消除太小的線條和皺紋,帶通也會消除太大的特徵-規模)。

之後,您可以使用Hough Transform來查找圖像中線條的長度和方向。

另外,它可能是一個可行的方法來檢測線/皺紋/黑暗區域,然後skeletonize圖像。這會給你線條的分支和端點。