Понимание исключения функции Reduce (): неподдерживаемая комбинация форматов входного и выходного массивов - PullRequest
0 голосов
/ 18 февраля 2019

Я новичок в OpenCV, и я хотел узнать, как правильно использовать функцию lower ().

Описание функции в OpenCVSharp: https://shimat.github.io/opencvsharp_docs/html/7bb05237-7ff6-0e19-bfeb-36ea352b3051.htm

Я создалпользовательский объект Mat и применил к нему функцию Reduce.

        int[,] mat2d = new int[,] 
        { 
            { 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 }, 
            { 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
            { 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
            { 0, 0, 0, 5, 10, 15, 15, 15, 15, 10, 5, 0, 0, 0 },
        };
        Mat testMat = new Mat(4, 14, MatType.CV_32S, mat2d);
        Mat reducedMat = testMat.Reduce(ReduceDimension.Row, 
                                           ReduceTypes.Sum, 
                                           MatType.CV_32S);

Я ожидаю, что extendedMat будет 1d-массивом, в котором каждый элемент индекса i содержит сумму строки i в testMat.

К сожалению, я получаю исключение «OpenCVException: неподдерживаемая комбинация форматов входного и выходного массивов».

Я также пытался изменить параметр ReduceDimension и параметр dtype для всех возможных параметров, но безлюбой успех.

1 Ответ

0 голосов
/ 18 апреля 2019

Ответ заменяет int[,] mat2d на byte[,] mat2d.

Оказывается, int не является допустимым типом для снижения.

...