Необработанное исключение при доступе к пиксельным данным в OpenCV - PullRequest
0 голосов
/ 24 сентября 2019

Я пишу программу для поиска пикселей на изображении по цветам.После применения функций CV к MAT я не могу получить доступ к его пиксельным данным.Он продолжает показывать необработанное исключение.

cv::Mat im = cv::imread("test.png");

    for (int i = 0; i < lm.rows; i++)
    {
        for (int j = 0; j < lm.cols; j++)
        {
            cv::Vec3b bgrPixel = lm.at<cv::Vec3b>(i, j);   // WORKS!
        }
    }

    cv::resize(im, im, cv::Size(8, 8));
    cv::Vec3b* p = im.ptr<cv::Vec3b>();  
    vector<cv::Vec3b> pix(p, p + im.total());  
    vector<int> labels;
    int unique = cv::partition(pix, labels, pixel_equal);
    cv::Mat lm = cv::Mat(labels).reshape(1, im.rows);

    for (int i = 0; i < lm.rows; i++)
    {
        for (int j = 0; j < lm.cols; j++)
        {
            cv::Vec3b bgrPixel = lm.at<cv::Vec3b>(i, j);   // UNHANDLED EXCEPTION!
        }
    }

static bool pixel_equal(const cv::Vec3b& a, const cv::Vec3b& b)
{
    return cv::norm(a, b) < 90;
}

Помощь приветствуется.

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