OpenCV中是否有与[srtd,srtdinds] = sort(dst,'ascend');Matlab 类似的函数?我试过cv::sortIdx(source, dst, cv::SORT_ASCENDING);但它不起作用.我的来源Mat包含一个列.
来自以下文件cv::sortIdx():
它不是重新排序元素本身,而是将排序元素的索引存储在输出数组中.
这意味着cv::sort()在调用cv::sortIdx()复制Matlab 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);
Run Code Online (Sandbox Code Playgroud)
现在dst包含置换索引,并source包含已排序的数据本身.