final = Mat::zeros(src.size(), CV_8UC3);
mask = Mat::zeros(src.size(), CV_8UC1);
- vector<vector<Point> > vpts;
- vpts.push_back(pts);
- fillPoly(mask, vpts, Scalar(255, 255, 255), 8, 0);
+ fillPoly(mask, pts, Scalar(255, 255, 255), 8, 0);
bitwise_and(src, src, final, mask);
imshow("Mask", mask);
imshow("Result", final);
{
fillColor = Scalar(0, 0, 255);
}
- vector<vector<Point> > pp;
- pp.push_back(intersectionPolygon);
- fillPoly(image, pp, fillColor);
+ fillPoly(image, intersectionPolygon, fillColor);
}
polylines(image, polygons, true, Scalar(0, 0, 0));
}
}
-
-// the function draws all the squares in the image
-static void drawSquares( Mat& image, const vector<vector<Point> >& squares )
-{
- for( size_t i = 0; i < squares.size(); i++ )
- {
- const Point* p = &squares[i][0];
- int n = (int)squares[i].size();
- polylines(image, &p, &n, 1, true, Scalar(0,255,0), 3, LINE_AA);
- }
-
- imshow(wndname, image);
-}
-
-
int main(int argc, char** argv)
{
static const char* names[] = { "pic1.png", "pic2.png", "pic3.png",
names[1] = "0";
}
- vector<vector<Point> > squares;
-
for( int i = 0; names[i] != 0; i++ )
{
string filename = samples::findFile(names[i]);
continue;
}
+ vector<vector<Point> > squares;
findSquares(image, squares);
- drawSquares(image, squares);
+
+ polylines(image, squares, true, Scalar(0, 255, 0), 3, LINE_AA);
+ imshow(wndname, image);
int c = waitKey();
if( c == 27 )