Нет жизнеспособной перегруженной "=" в объекте c opencv - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь найти ограничивающую рамку на контурах изображения, используя эту документацию openCV, но получаю эту ошибку

No viable overloaded '='

на

boundRect[i] = cv::boundingRect( contours_poly[i] )

cv::Mat mat;
UIImageToMat(image, mat);

cv::Mat gray;
printf("number of channels = %d",mat.channels());
cv::cvtColor(mat, gray, cv::COLOR_BGRA2BGR);

cv::Mat bin;

cv::threshold(gray, bin, 0, 1, cv::THRESH_BINARY);
std::vector<std::vector<Point> > contours;
std::vector<std::vector<Point> > hierarchy;
cv::findContours(bin, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);

std::vector<std::vector<Point> > contours_poly( contours.size() );
std::vector<Rect> boundRect( contours.size() );



for( size_t i = 0; i < contours.size(); i++ )
{
    cv::approxPolyDP( contours[i], contours_poly[i], 3, true );
    boundRect[i] = cv::boundingRect( contours_poly[i] );//Getting Error here


}

1 Ответ

0 голосов
/ 28 мая 2020

Функция cv::boundingRect() возвращает cv::Rect значение. Измените

std::vector<Rect> boundRect( contours.size() );

на

std::vector<cv::Rect> boundRect( contours.size() );

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