#define w 400
void MyEllipse( Mat img, double angle );
void MyFilledCircle( Mat img,
Point center );
void MyPolygon( Mat img );
char atom_window[] = "Drawing 1: Atom";
char rook_window[] = "Drawing 2: Rook";
Mat atom_image = Mat::zeros( w, w,
CV_8UC3 );
Mat rook_image = Mat::zeros( w, w,
CV_8UC3 );
MyEllipse( atom_image, 90 );
MyEllipse( atom_image, 0 );
MyEllipse( atom_image, 45 );
MyEllipse( atom_image, -45 );
MyFilledCircle( atom_image,
Point( w/2, w/2) );
MyPolygon( rook_image );
MyLine( rook_image,
Point( 0, 15*w/16 ),
Point( w, 15*w/16 ) );
MyLine( rook_image,
Point( w/4, 7*w/8 ),
Point( w/4, w ) );
MyLine( rook_image,
Point( w/2, 7*w/8 ),
Point( w/2, w ) );
MyLine( rook_image,
Point( 3*w/4, 7*w/8 ),
Point( 3*w/4, w ) );
imshow( atom_window, atom_image );
imshow( rook_window, rook_image );
return(0);
}
void MyEllipse( Mat img, double angle )
{
int thickness = 2;
int lineType = 8;
angle,
0,
360,
thickness,
lineType );
}
void MyFilledCircle( Mat img,
Point center )
{
center,
w/32,
}
void MyPolygon( Mat img )
{
Point rook_points[1][20];
rook_points[0][0] =
Point( w/4, 7*w/8 );
rook_points[0][1] =
Point( 3*w/4, 7*w/8 );
rook_points[0][2] =
Point( 3*w/4, 13*w/16 );
rook_points[0][3] =
Point( 11*w/16, 13*w/16 );
rook_points[0][4] =
Point( 19*w/32, 3*w/8 );
rook_points[0][5] =
Point( 3*w/4, 3*w/8 );
rook_points[0][6] =
Point( 3*w/4, w/8 );
rook_points[0][7] =
Point( 26*w/40, w/8 );
rook_points[0][8] =
Point( 26*w/40, w/4 );
rook_points[0][9] =
Point( 22*w/40, w/4 );
rook_points[0][10] =
Point( 22*w/40, w/8 );
rook_points[0][11] =
Point( 18*w/40, w/8 );
rook_points[0][12] =
Point( 18*w/40, w/4 );
rook_points[0][13] =
Point( 14*w/40, w/4 );
rook_points[0][14] =
Point( 14*w/40, w/8 );
rook_points[0][15] =
Point( w/4, w/8 );
rook_points[0][16] =
Point( w/4, 3*w/8 );
rook_points[0][17] =
Point( 13*w/32, 3*w/8 );
rook_points[0][18] =
Point( 5*w/16, 13*w/16 );
rook_points[0][19] =
Point( w/4, 13*w/16 );
const Point* ppt[1] = { rook_points[0] };
int npt[] = { 20 };
ppt,
npt,
1,
lineType );
}
{
int thickness = 2;
start,
end,
thickness,
lineType );
}
Point2i Point
Definition: modules/core/include/opencv2/core/types.hpp:209
Size2i Size
Definition: modules/core/include/opencv2/core/types.hpp:370
Scalar_< double > Scalar
Definition: modules/core/include/opencv2/core/types.hpp:709
#define CV_8UC3
Definition: core/include/opencv2/core/hal/interface.h:90
@ circle
Definition: gr_skig.hpp:62
void imshow(const String &winname, InputArray mat)
Displays an image in the specified window.
int waitKey(int delay=0)
Waits for a pressed key.
void moveWindow(const String &winname, int x, int y)
Moves the window to the specified position.
void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
Draws a simple, thick, or filled up-right rectangle.
void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
Draws a simple or thick elliptic arc or fills an ellipse sector.
void fillPoly(InputOutputArray img, InputArrayOfArrays pts, const Scalar &color, int lineType=LINE_8, int shift=0, Point offset=Point())
Fills the area bounded by one or more polygons.
void line(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
Draws a line segment connecting two points.
@ LINE_8
8-connected line
Definition: imgproc/include/opencv2/imgproc.hpp:893
@ FILLED
Definition: imgproc/include/opencv2/imgproc.hpp:891
int main(int argc, char *argv[])
Definition: highgui_qt.cpp:3
Definition: core/include/opencv2/core.hpp:107