2012-09-21 29 views
1

我正在用scipy.ndimage進行圖像處理。給定一個環形物體,我想在其周圍產生一個「輪廓」。該輪廓可以是像在環周圍的各個點處的厚度測量,或沿環的「厚度」的平均信號。用SciPy進行徑向採樣

在我看來,我可以使用ndimage.mean,如果我可以先獲得一個良好的標籤圖像。

如果我的戒指看起來像這樣,

A = array([[0, 0, 0, 0, 1, 0, 0, 0, 0, 0], 
      [0, 0, 1, 1, 1, 1, 1, 1, 0, 0], 
      [0, 0, 1, 1, 1, 1, 1, 1, 0, 0], 
      [0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 
      [0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 
      [0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 
      [0, 0, 1, 1, 0, 0, 1, 1, 1, 0], 
      [0, 0, 1, 1, 0, 0, 1, 1, 0, 0], 
      [0, 0, 1, 1, 1, 1, 1, 1, 0, 0], 
      [0, 0, 0, 0, 1, 0, 0, 0, 0, 0]]) 

我能得到「的方式曲線」與numpy.mean(A, labels)其中labels是。

array([[0, 0, 0, 0, 2, 0, 0, 0, 0, 0], 
     [0, 0, 1, 1, 2, 3, 4, 4, 0, 0], 
     [0, 0, 1, 1, 2, 3, 4, 5, 0, 0], 
     [0, 0, 16, 16, 0, 0, 5, 5, 0, 0], 
     [0, 0, 15, 15, 0, 0, 6, 6, 0, 0], 
     [0, 0, 14, 14, 0, 0, 7, 7, 0, 0], 
     [0, 0, 13, 13, 0, 0, 8, 8, 8, 0], 
     [0, 0, 13, 12, 0, 0, 9, 9, 0, 0], 
     [0, 0, 12, 12, 11, 10, 9, 9, 0, 0], 
     [0, 0, 0, 0, 11, 0, 0, 0, 0, 0]]) 

我敢打賭,有一些插值的東西會被忽略,但這些都是我可以自己想出來的。

有沒有辦法生成我建議的labels圖片?有沒有更好的方法來生成我的配置文件?

+0

我從[this](http://stackoverflow.com/a/3806851/512652)得到了我需要的答案。 – ajwood

回答

1

圓圈(或球體)上的標準概率分佈是Von-Mises Fisher分佈。

SciPy的支持這種分配:http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.vonmises.html

所以,你應該能夠使用擬合函數找到最大似然參數爲您的數據。

+0

對不起,我不明白。你能詳細說明一下嗎? – ajwood

+0

如果你有一組沿着環的不同角度的離散計數,那麼你可以在給定這些測量值的情況下擬合馮·米斯分佈。擬合的分佈會給你一個厚度單位出現在特定角度的概率。 – user1149913