Как найти точки разводки обнаруженного изображения?

Я хочу найти точки контура, который рисуется на объекте после следующей операции, такой как вычитание фона, findcontour, drawcontour.
Мой объект движется так, что мой контур тоже не правильный. и я хочу найти максимальные и минимальные точки на контуре, который рисуется на объекте.
Может кто-нибудь сказать мне, как найти?
Мой объект — движущаяся машина, а камера — сверху.

-2

Решение

vector<vector<Point>> allContours;
vector<Vec4i> hierarchy;
Mat _temp = image.clone();
findContours(_temp, allContours, RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

allContours — вектор контура.
Вы можете получить доступ к точкам каждого контура.

================================================== ==========================

все точки конуса будут нарисованы по приведенному ниже коду.
оригинал
нарисовать контур
рисовать точки контура

    vector<vector<Point>> allContours;
vector<Vec4i> hierarchy;
Mat _temp = imageGray.clone();
Mat ptDraw = Mat::zeros(image.rows,image.cols,CV_8UC3);
findContours(_temp, allContours, RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

for(int i=0;i<allContours.size();i++)
{
drawContours(image, allContours, i, Scalar(0,0,255), 2, 8, hierarchy, 0, Point() );

for(int j=0;j<allContours.at(i).size();j++)
{
Point pt = allContours.at(i).at(j);
circle(ptDraw,pt,1,Scalar(0,0,255),CV_FILLED);
}
}
0

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


По вопросам рекламы [email protected]