SURF特徴点をブロック分けしたい

特徴点が密集しているところを取り出したい。分散している点群をまとめるのに、数学の知識が乏しい私には選択肢が少ない。
Schimaさんのエントリでなんとなくそれっぽいのを見かけたので真似してcvSeqPartition()を試してみました。
opencv.jpのサンプルを参考にすれば楽勝。色づけは自分でやりましたけど。
cvExtractSURF()を用いてSURF特徴点を取り出して、その結果として返されるCvSRUFPoint*が格納されたCvSeq(keypointsの方)をcvSeqPartition()に渡すとラベリング的なことをしてくれる。
ちょっと手を入れたCvCmpFunc()型判定関数を指定する。中身はCvSURFPointの中のCvPointを取り出して座標間距離を算出するよう計算する。(OpenCVのサンプルは変則的)
keypointsシーケンスをcvSeqSort()する必要があるかもと思ったが描画してみたら問題なさそう。

結果的には目的に沿わないので使わないかもしれませんが。cvSeqPartition()で検索しても動作事例がないので報告だけ。