EMD()
MacOSMLでOpenCV2.4.2を呼び出すのに問題があります。
Mat _signature
私はそのように定義された属性を持つクラスを持っています:
Mat _signature(size,dim+1,CV_32F);
for (int i = 0; i<size; ++i){
_signature.at<float>(i,0) = weight;
for (int j = 1; j < dim+1; ++j){
_signature.at<float>(i,j) = vec[i].at<float>(0,j-1); // vec[i] is a line vector containing the position in R^dim
}
}
次にu
、v
そのクラスのインスタンスが2つあり、EMD(u._signature, v._signature, CV_DIST_L2);
それは失敗しますOpenCV Error: One of arguments' values is out of range () in icvInitEMD, file /*SOME PATH*/OpenCV-2.4.2/modules/imgproc/src/emd.cpp, line 408
私はソースコードを見ましたが、これが何が失敗するのか理解できませんでした。私の議論は、ドキュメンテーションが望んでいることに対応して現れます。どんな助けでもありがたいです。