Я пытаюсь работать с бесшовным клоном открытого резюме, и я сталкиваюсь с действительно раздражающим сегфоутом, который я не могу понять. Похоже, что если последний пиксель в мате не имеет значения 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)