Segfault OpenCV Seamless Clone, когда последний индекс в маске не равен 255 - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь работать с бесшовным клоном открытого резюме, и я сталкиваюсь с действительно раздражающим сегфоутом, который я не могу понять. Похоже, что если последний пиксель в мате не имеет значения 255, возникает ошибка. Ниже приведен мой тестовый код:

    cv::Mat im2 = cv::imread("kitten.jpg");
    cv::Mat hund;
    cv::resize(im2, hund, Size(10,10));
    cv::Mat obj2 = cv::Mat(cv::Size(10, 10), CV_8UC3, cv::Scalar(0));
    cv::Mat mask2(obj2.size(), CV_8UC1, cv::Scalar(255));

    cv::Point center2(int(hund.cols / 2), int(hund.rows / 2));

    for(int i = 0; i < 10; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            cv::Mat out;
            std::cout << "(" << i << "," << j << ")" << std::endl;
            mask2.at<uchar>(i, j) = 0;
            cv::seamlessClone(obj2, hund, mask2, center2, out, cv::MIXED_CLONE);
        }
    }

Это прекрасно работает до последнего пикселя, как показано в этом примере вывода:

(0,0)
(0,1)
...
(9,8)
(9,9)
Segmentation fault (core dumped)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...