OpenCV中是否有与Matlab中的[srtd,srtdinds] = sort(dst,'ascend');类似的等效函数?我已经尝试过cv::sortIdx(source, dst, cv::SORT_ASCENDING);,但是没有用。我的源Mat仅包含一列。

最佳答案

cv::sortIdx() 的文档中:



这意味着您需要在调用cv::sort()以复制Matlab的cv::sortIdx()函数的行为之后,调用sort()对元素本身进行排序:

cv::Mat source = cv::Mat::eye(3,3,CV_32F), dst;
cv::sortIdx(source, dst, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING);
cv::sort(source, source, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING);

现在dst包含排列的索引,而source包含排序的数据本身。

关于c++ - 在OpenCv中对cv::Mat进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17831753/

10-09 06:03
查看更多