cv sort函数,在OpenCv中排序cv :: Mat

Is there an equivalent function in OpenCV similar to [srtd,srtdinds] = sort(dst,'ascend'); in Matlab? I have tried cv::sortIdx(source, dst, cv::SORT_ASCENDING); but it doesn't work. My source Mat contains a single column.

解决方案

From the documentation of cv::sortIdx():

Instead of reordering the elements themselves, it stores the indices of sorted elements in the output array.

This means that you will need to call cv::sort() to sort the elements themselves after calling cv::sortIdx() to replicate the behavior of Matlab's sort() function:

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);

Now dst contains the permuted indices, and source contains the sorted data itself.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值