c++ - para - Clasificación de cv:: Mat en OpenCv
opencv examples (1)
¿Existe una función equivalente en OpenCV similar a [srtd,srtdinds] = sort(dst,''ascend''); en Matlab? He intentado cv::sortIdx(source, dst, cv::SORT_ASCENDING); pero no funciona. Mi fuente Mat contiene una sola columna.
De la documentación de cv::sortIdx() :
En lugar de reordenar los elementos, almacena los índices de los elementos ordenados en la matriz de salida.
Esto significa que deberá llamar a cv::sort() para ordenar los elementos después de llamar a cv::sortIdx() para replicar el comportamiento de la función sort() de Matlab:
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);
Ahora dst contiene los índices permutados y la source contiene los datos ordenados.