2011-09-17 57 views
1

我不知道這樣做有人可以用SIMPLE的術語向我解釋這一點嗎? 請不要給我複雜的數學答案或東西太多技術,只是它的通用 感謝cvSeqPartition()的解釋?

回答

2
// This function splits the input sequence or set into one or more equivalence classes. 
// is_equal(a,b,...) returns non-zero if the two sequence elements 
// belong to the same class. The function returns sequence of integers - 
// 0-based class indexes for each element. 
// 
// The algorithm is described in "Introduction to Algorithms" 
// by Cormen, Leiserson and Rivest, chapter "Data structures for disjoint sets" 
CV_IMPL int 
cvSeqPartition(const CvSeq* seq, CvMemStorage* storage, CvSeq** labels, 
       CvCmpFunc is_equal, void* userdata) 

什麼部分需要更詳細的解釋?

更新:

敵人例如,考慮整數的順序如下:

{9,5,7,5,9,9} 

is_equal功能剛剛測試整數平等,cvSeqPartition會發現3類:

{9,9,9} {5,5} {7} 

so cvSeqPartition輸出將爲

{0,1,2,1,0,0} 

,其中每個數字是元件類的索引。

+0

所以它只是分爲二的順序?是嗎? – fdh

+0

不是兩個,而是找到所有等價類。我用一個簡單的例子更新了我的答案。 –

+0

好了,謝謝:) – fdh