Lines Matching full:points
60 void drawPoints(const std::vector<Point2f> &points, Mat &outImage, int radius = 2, Scalar color = Scalar::all(255), int thickness = -1)
62 for(size_t i=0; i<points.size(); i++)
64 circle(outImage, points[i], radius, color, thickness);
69 void CirclesGridClusterFinder::hierarchicalClustering(const std::vector<Point2f> &points, const Size &patternSz, std::vector<Point2f> &patternPoints)
72 if(tegra::useTegra() && tegra::hierarchicalClustering(points, patternSz, patternPoints))
75 int j, n = (int)points.size();
79 if (pn >= points.size())
81 if (pn == points.size())
82 patternPoints = points;
92 dists.at<float>(i, j) = (float)norm(points[i] - points[j]);
100 std::vector<std::list<size_t> > clusters(points.size());
101 for(size_t i=0; i<points.size(); i++)
125 //the largest cluster can have more than pn points -- we need to filter out such situations
134 patternPoints.push_back(points[*it]);
138 void CirclesGridClusterFinder::findGrid(const std::vector<cv::Point2f> &points, cv::Size _patternSize, std::vector<Point2f>& centers)
142 if(points.empty())
148 hierarchicalClustering(points, patternSize, patternPoints);
157 imshow("pattern points", patternPointsImage);
358 //indices of corner points in pattern
881 void CirclesGridFinder::addPoint(Point2f pt, std::vector<size_t> &points)
888 points.push_back(keypoints.size() - 1);
892 points.push_back(ptIdx);
1007 const std::vector<size_t> &points, const std::vector<size_t> &seeds)
1009 CV_Assert( points.size() == seeds.size() );
1016 if (seeds[i] < vCount && points[i] < vCount)
1018 if (!basisGraphs[addRow].areVerticesAdjacent(seeds[i], points[i]))
1028 if (points[i] < vCount)
1034 for (size_t i = 1; i < points.size(); i++)
1036 if (points[i - 1] < vCount && points[i] < vCount)
1038 if (!basisGraphs[!addRow].areVerticesAdjacent(points[i - 1], points[i]))
1412 static bool areIndicesCorrect(Point pos, std::vector<std::vector<size_t> > *points)
1416 return (static_cast<size_t> (pos.y) < points->size() && static_cast<size_t> (pos.x) < points->at(pos.y).size());
1481 void CirclesGridFinder::getCornerSegments(const std::vector<std::vector<size_t> > &points, std::vector<std::vector<Segment> > &segments,
1489 int h = (int)points.size();
1490 int w = (int)points[0].size();
1496 corner.push_back(Segment(keypoints[points[1][0]], keypoints[points[0][0]]));
1497 corner.push_back(Segment(keypoints[points[0][0]], keypoints[points[0][1]]));
1504 corner.push_back(Segment(keypoints[points[0][w - 2]], keypoints[points[0][w - 1]]));
1505 corner.push_back(Segment(keypoints[points[0][w - 1]], keypoints[points[1][w - 1]]));
1512 corner.push_back(Segment(keypoints[points[h - 2][w - 1]], keypoints[points[h - 1][w - 1]]));
1513 corner.push_back(Segment(keypoints[points[h - 1][w - 1]], keypoints[points[h - 1][w - 2]]));
1520 corner.push_back(Segment(keypoints[points[h - 1][1]], keypoints[points[h - 1][0]]));
1521 corner.push_back(Segment(keypoints[points[h - 1][0]], keypoints[points[h - 2][0]]));
1530 getDirection(keypoints[points[0][0]], keypoints[points[0][w - 1]], keypoints[points[h - 1][w - 1]]) < 0;