[英]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.