opencv对Mat进行排序

由于sort函数和sortId函数是对一行或一列进行排序的,所以对整个需要reshape一下,还要指定是行还是列。

	Mat c1 = (Mat_<uchar>(3, 3) << 1, 5, 6, 2, 4, 3, 8, 9, 7);
	Mat c3 = c1.reshape(1, 9);
	cv::sort(c3, c3, SORT_EVERY_COLUMN + CV_SORT_ASCENDING);

sortid返回是大小的索引

	Mat c1 = (Mat_<uchar>(3, 3) << 1, 5, 6, 2, 4, 3, 8, 9, 7);
	Mat c2(c1);
	//sort(c2, c2, CV_SORT_EVERY_ROW + CV_SORT_ASCENDING);
	sortIdx(c1, c2, SORT_EVERY_COLUMN + SORT_ASCENDING);

猜你喜欢

转载自blog.csdn.net/qq_30263737/article/details/84025334
今日推荐