Нет подходящей функции для cv :: merge - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу объединить изображение 3-х монохромных камер в одну 3-канальную матрицу OpenCV. Я пытаюсь это следующим образом:

    cv::Mat merged;
    std::vector<cv::Mat> channels[3];

    while(1){
        channels[0]=Camera1->getNextFrameSWTrig();  //give back frame_time and frame_num
        channels[1]=Camera2->getNextFrameSWTrig();  //give back frame_time and frame_num
        channels[2]=Camera3->getNextFrameSWTrig();

        cv::merge(channels, merged);

        (*buffer).push_back(merged.clone());

    }

Но появляется следующее сообщение об ошибке:

нет соответствующей функции для вызова 'слияния'

Хотя в документации OpenCV я нашел:

C ++: void merge (InputArrayOfArrays mv, OutputArray dst)

1 Ответ

0 голосов
/ 08 ноября 2018

С

std::vector<cv::Mat> channels[3];
                             ^ ^

вы создаете массив из 3 std::vector, в то время как вы хотите std::vector с 3 элементами:

std::vector<cv::Mat> channels(3);
                             ^ ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...