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.