SIGABRT в computeBinaryMap для карт значимости - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь использовать computeBinaryMap после computeSalidity, но получаю сигнал SIGABRT.

Я пытаюсь обнаружить людей на тепловых изображениях и для этого использую карты значимости. После моего вызова computeSalidity я хочу использовать BinaryMap для фильтрации теплых областей, так как просто пороговое значение даст слишком много сегментов. Мои входные и выходные маты имеют одинаковый размер и тип. Я пытался использовать их без инициализации, но это ничего не изменило.

Я использую OpenCV 3.3.1 на Ubuntu16 с ROS Kinetic.

void computeSaliencyThresh(const cv::Mat *input, cv::Mat *output_saliency, cv::Mat *output_threshold) {
        cv::saliency::StaticSaliencyFineGrained saliency_algorithm;

        if (!saliency_algorithm.computeSaliency(*input, *output_saliency)) {
            ROS_ERROR("Saliency could not be calculated.");
        }
        ROS_INFO("Saliency calculated.");

        if (!saliency_algorithm.computeBinaryMap(*output_saliency, *output_threshold)) { // <- this line sends the signal
           ROS_ERROR("Thresholding for saliency could not be calculated.");
        }
        ROS_INFO("Thresholding calculated.");
    }

Функция должна возвращаться с заполненными output_salidity и output_thresh, но она отправляет сигнал SIGABRT без дополнительной информации, кроме отправки вызовом computeBinaryMap.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...