Как получить доступ к вектору & lt; vector & lt; Point & gt; & gt; контуры в opencv как элемент матрицы?

Моя проблема в том, что я не знаю, как получить доступ vector <vector <Point>> контур (это 2D как матрица в OpenCV)

Я хочу сделать это. Если элемент Mat не состоит в области контуров, я хочу подавить элементы матрицы. Для этого мне нужно знать элемент contours.

3

Решение

Если бы моя ситуация была настолько срочной, я бы задал свой вопрос более тщательно.

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

1

Другие решения

Вам нужен цикл for как для первого, так и для второго вектора. Что-то вроде этого:

vector< vector<Point> > contours;

for(int i= 0; i < contours.size(); i++)
{
for(int j= 0; j < contours[i].size();j++) // run until j < contours[i].size();
{
cout << contours[i][j] << endl; //do whatever
}
}
10

Если вам нужны все точки, а не только крайние точки, вы можете использовать drawContours(....,thickness=CV_FILLED) чтобы сбросить этот контур на фиктивном коврике, вы можете получить эти точки путем сканирования фиктивного коврика.

0