2

既に計算された 2 つの記述子間の距離 (ユークリッドまたはハミング) を計算しようとしています。問題は、マッチャーを使用したくないことです。2 つの記述子間の距離を計算したいだけです。私は OpenCV 2.4.9 を使用しており、私の記述子を Mat 型に格納しています。

Mat descriptors1;
Mat descriptors2; 

そして今、記述子1の行1と記述子2の行1の間の距離(バイナリ記述子を使用しているため、ハミング距離が望ましい)を計算したいだけです(たとえば)。

bitwise_xor() 関数を使用しようとしましたが、ビットカウントを行う効果的な方法がありませんでした。2 つの配列間のハミング距離を計算する関数はありませんか?

私は OpenCV にかなり慣れていないことに気付きましたが、助けていただければ幸いです。ありがとうございました

4

1 に答える 1

8

これにはopencvのノルム関数を使用できます。

Mat descriptors1;
Mat descriptors2; 

double dist_l2  = norm(descriptors1,descriptors2,NORM_L2);      // l2 for surf,sift
double dist_ham = norm(descriptors1,descriptors2,NORM_HAMMING); // for ORB,BRIEF,etc.
于 2014-10-12T17:53:17.263 に答える