繁体   English   中英

在OpenCv中对cv :: Mat进行排序

[英]Sorting cv::Mat in OpenCv

OpenCV中是否有与[srtd,srtdinds] = sort(dst,'ascend');相似的函数[srtd,srtdinds] = sort(dst,'ascend'); 在Matlab? 我试过cv::sortIdx(source, dst, cv::SORT_ASCENDING); 但它不起作用。 我的源Mat包含一列。

cv::sortIdx()的文档:

它不是重新排序元素本身,而是将排序元素的索引存储在输出数组中。

这意味着在调用cv::sortIdx()以复制Matlab的sort()函数的行为之后,您需要调用cv::sort()来对元素本身进行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包含已排序的数据本身。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM