2011-12-01 112 views
2

我一直在努力圍繞提取基於距離大規模順時針的中心,距離角度0開始形狀的時間序列360時間序列二進制形狀

我的實現是基於其角度的安排輪廓點[1,0],矢量可能適用於某些形狀,但對於具有很強關聯性的形狀沒有用處。考慮下面的代碼:

IM = Image.open(os.path.join(路徑,文件名))

IM = im.filter(ifilter.MedianFilter)

contim = IM。過濾器(ifilter.CONTOUR)

contim = contim [1:-1,1:-1]#這是因爲邊界在此處提取作爲輪廓

contpts = np.where(contim == 0)

contpts = np.vstack((contpts [0],contpts [1]))#只需要相對於順時針形狀的重心

到誰能告訴我如何安排這些點我可以從任何形狀中提取該特徵,我可以從一個點開始並繼續沿着輪廓去提取到形狀中心的所有距離。

有關功能的更多信息,請查看本文:「LB_Keogh支持下旋轉不變性形狀與任意陳述和距離測度的精確索引」

+1

請更準確地指出您的問題,因爲我不知道您正在查看的問題。此外,這個問題不是很好。 –

+0

根據您的要求進行編輯。 – JustInTime

+0

如果你能用簡單的語言解釋你正在努力完成什麼,那將會很有幫助。你的輸入是什麼,你的輸出是什麼,算法的步驟是什麼......我們不需要閱讀一篇文章來理解你的問題。 – Charles

回答

0

如果我的理解,有一個離散平面幾何圖形,以矩陣表示。如果條目是1,那麼你就在圖中。如果它是0,你就在外面。他想要確定邊緣中所有點的圖形邊緣與圖形中心之間的距離。他用極座標系對它進行參數化。圖形的中心是原點,現在他想要將距邊界的距離作爲角度的函數。這就是他所謂的「時間系列」。

這是正確的嗎?

如果是的話,你不能只是:

1. determine the center of mass, 
2. reposition the origin to match the center of mass. 
3. start angle at 0 
4. r = 0 
5. for each angle in [0,1,...,360] 
     1. If you're in inside the figure, increase r until you reach the border. 
     2. If you're outside the figure, decrease r until you reach the border. 
     3. When you reach the border, d(angle) = r 

它的身影有或多或少的連續的邊界,這將遵循輪廓。

會這樣嗎?

+0

如果我理解你是正確的,那麼對於像人體或動物一樣的形狀將不起作用,因爲存在與質心x軸具有相同角度距離的邊界點。 – JustInTime