我想在使用C++中的OpenCV库时,在SparseMat矩阵中找到最大值的位置。 我尝试了以下代码,但它并不起作用:
int Tdim=1;
int Tsize[]={2,3};
SparseMat samplesT(Tdim,Tsize,CV_32F);
int el[]={1,2}; // max location
samplesT.ref<float>(el)=5; // setting max value
double TmaxVal, TminVal;
int TmaxIdx, TminIdx;
minMaxLoc(samplesT, &TminVal, &TmaxVal, &TminIdx, &TmaxIdx);
cout<<"TmaxIdx= "<<(TmaxIdx)<<endl; // returns: 1
cout<<"TmaxVal= "<<(samplesT.ref<float>(TmaxIdx))<<endl; // returns: 5
真的很奇怪,
涉及IT技术方面的内容。 samplesT.ref<float>(TmaxIdx)
这个函数可以正确返回矩阵的最大值,但是TmaxIdx只包含了矩阵中最大值所在的行!
我希望能找到任何方法来寻找OpenCV SparseMat矩阵中最大值的x和y。