1. 程式人生 > >opencv對Mat進行排序

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