3

OpenCV sortIdx(C++ / Objective C) を使用しようとしましたが、予期しない結果が得られました。

Mat test = (Mat_<double>(1, 6) << 15.342105,5.000000,27.000000,1.1,2.1,3.1);
std::cout << test << "\n";
Mat testIdx;
sortIdx(test, testIdx, CV_SORT_ASCENDING | CV_SORT_EVERY_ROW);
std::cout << testIdx << "\n";

これにより、次の出力が得られます。

[15.342105, 5, 27, 1.1, 2.1, 3.1]
[3, 4, 5, 1, 0, 2]

私が期待している間

[15.342105, 5, 27, 1.1, 2.1, 3.1]
[4, 3, 5, 0, 1, 2]

理由はわかりませんが、通常のsort関数はソートされたシーケンスを正しく返します。

4

1 に答える 1