An example using drawing functions Check the corresponding tutorial for more details
#define w 400
void MyEllipse( 
Mat img, 
double angle );
 void MyFilledCircle( 
Mat img, 
Point center );
 void MyPolygon( 
Mat img );
 int main( void ){
  char atom_window[] = "Drawing 1: Atom";
  char rook_window[] = "Drawing 2: Rook";
  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 );
}