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/