掩码中的最后一个索引不是255时的OpenCV无缝克隆段错误

时间:2019-11-04 01:54:27

标签: opencv opencv3.2

我正在尝试使用开放式CV的无缝克隆,但我遇到了一个我无法弄清的非常烦人的段错误。看起来如果垫子中的最后一个像素的值不为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)

0 个答案:

没有答案