opencv: 排序

opencv提供了排序函数:  sort和sorIdx , 其中sortIdx可以获取排序后的序号,比较方便;

sortIdx原型:

C++: void sortIdx(InputArray src, OutputArray dst, int flags)

Python: cv2.sortIdx(src, flags[, dst]) → dst

Parameters: src – Source single-channel array. dst – Destination integer array of the same size as src . flags – Operation flags that could be a combination of the following values: CV_SORT_EVERY_ROW Each matrix row is sorted independently. CV_SORT_EVERY_COLUMN Each matrix column is sorted independently. This flag and the previous one are mutually exclusive. CV_SORT_ASCENDING Each matrix row is sorted in the ascending order. CV_SORT_DESCENDING Each matrix row is sorted in the descending order. This flag and the previous one are also mutually exclusive.

sort原型:

Sorts each row or each column of a matrix.
C++: void sort(InputArray src, OutputArray dst, int flags)

Python: cv2.sort(src, flags[, dst]) → dst

Parameters:
src – Source single-channel array.
dst – Destination array of the same size and type as src .
flags – 
Operation flags, a combination of the following values:
CV_SORT_EVERY_ROW Each matrix row is sorted independently.
CV_SORT_EVERY_COLUMN Each matrix column is sorted independently. This flag and the previous one are mutually exclusive.
CV_SORT_ASCENDING Each matrix row is sorted in the ascending order.
CV_SORT_DESCENDING Each matrix row is sorted in the descending order. This flag and the previous one are also mutually exclusive.
The function sort sorts each matrix row or each matrix column in ascending or descending order. So you should pass two operation flags to get desired behaviour. If you want to sort matrix rows or columns lexicographically, you can use STL std::sort generic function with the proper comparison predicate.

这两个函数都支持矩阵的行、列排序;

以下是例子:

    cv::Mat  IndexMat;      //序号矩阵
    cv::sortIdx(matchMat,IndexMat,CV_SORT_ASCENDING + CV_SORT_EVERY_COLUMN);    //matchMat为原始数据矩阵

sort同上,这里就不详细说明了,使用方法请见:www.opencv.org.cn/opencvdoc/2.3.2/html/modules/core/doc/operations_on_arrays.html?highlight=sort#cv2.sort

原文地址:https://www.cnblogs.com/yinwei-space/p/9084366.html