line, circle, rectangle, ellipse, polyline, fillConvexPoly, putText, drawContours example source code!!.
...
//http://study.marearts.com/2016/06/opencv-mat-copyto-clone-roi-example-code.html
#include "opencv2/opencv.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
#include <vector>
#ifdef _DEBUG
#pragma comment(lib, "opencv_core331d.lib")
#pragma comment(lib, "opencv_highgui331d.lib")
#pragma comment(lib, "opencv_imgcodecs331d.lib")
#pragma comment(lib, "opencv_objdetect331d.lib")
#pragma comment(lib, "opencv_imgproc331d.lib")
#pragma comment(lib, "opencv_videoio331d.lib")
#else
#pragma comment(lib, "opencv_core331.lib")
#pragma comment(lib, "opencv_highgui331.lib")
#pragma comment(lib, "opencv_imgcodecs331.lib")
#pragma comment(lib, "opencv_objdetect331.lib")
#pragma comment(lib, "opencv_imgproc331.lib")
#pragma comment(lib, "opencv_videoio331.lib")
#endif
using namespace std;
using namespace cv;
int main()
{
Mat img(500, 500, CV_8UC3);
img.setTo(255);
///////////////////////////////////////////////////
//line example
cv::Point pt(300, 300);
line(img, Point(10, 10), pt, CV_RGB(255, 0, 0), 2);
line(img, Point(300, 10), Point(30, 300), Scalar(255, 0, 0), 2);
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//Circle example
circle(img, Point(250, 250), 100, CV_RGB(0, 255, 0), 3);
cv::Point center(400, 400);
circle(img, center, 300, Scalar(255, 255, 0), 10);
circle(img, Point(40, 40), 10, Scalar(255, 0, 0), -1);
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//rectangle example
rectangle(img, Rect(10, 10, 200, 200), CV_RGB(255, 0, 0), 2);
rectangle(img, Rect(Point(40, 40), Point(400, 400)), Scalar(255, 0, 0), 10);
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//ellipse example 1
ellipse(img, Point(100, 100), Size(100, 50), 0, 0, 360, CV_RGB(255, 0, 0));
ellipse(img, Point(100, 100), Size(100, 50), 30, 0, 360, CV_RGB(0, 255, 0));
ellipse(img, Point(100, 100), Size(100, 50), 60, 0, 360, CV_RGB(0, 0, 255));
ellipse(img, Point(300, 300), Size(100, 50), 0, 0, 180, CV_RGB(255, 0, 0));
ellipse(img, Point(300, 300), Size(100, 50), 30, 0, 270, CV_RGB(0, 255, 0));
ellipse(img, Point(300, 300), Size(100, 50), 60, 0, 360, CV_RGB(0, 0, 255));
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//ellipse example 2
RotatedRect rRect = RotatedRect(Point2f(300, 300), Size2f(300, 100), 30);
ellipse(img, rRect, CV_RGB(255, 0, 0));
//draw rect and inside rect in RotatedRect
Point2f vertices[4];
rRect.points(vertices);
for (int i = 0; i < 4; i++)
line(img, vertices[i], vertices[(i + 1) % 4], Scalar(0, 255, 0));
Rect brect = rRect.boundingRect();
rectangle(img, brect, Scalar(255, 0, 0));
///////////////////////////////////////////////////
/*
///////////////////////////////////////////////////
//polylines example 1
vector< Point> contour;
contour.push_back(Point(50, 50));
contour.push_back(Point(300, 50));
contour.push_back(Point(350, 200));
contour.push_back(Point(300, 150));
contour.push_back(Point(150, 350));
contour.push_back(Point(100, 100));
const Point *pts = (const cv::Point*) Mat(contour).data;
int npts = Mat(contour).rows;
std::cout << "Number of polygon vertices: " << npts << std::endl;
// draw the polygon
polylines(img, &pts, &npts, 1, false, Scalar(0, 255, 0));
//polylines example 2
contour.clear();
contour.push_back(Point(400, 400));
contour.push_back(Point(250, 250));
contour.push_back(Point(50, 300));
pts = (const cv::Point*) Mat(contour).data;
npts = Mat(contour).rows;
polylines(img, &pts, &npts, 1, true, Scalar(255, 0, 0));
///////////////////////////////////////////////////
*/
/*
///////////////////////////////////////////////////
//fillConvexPoly example 1
cv::Point ptss[4];
ptss[0] = cv::Point(100, 100);
ptss[1] = cv::Point(150, 200);
ptss[2] = cv::Point(300, 300);
ptss[3] = cv::Point(400, 100);
cv::fillConvexPoly(img, ptss, 4, cv::Scalar(0, 0, 200));
///////////////////////////////////////////////////
*/
/*
///////////////////////////////////////////////////
//textout example 1
char TestStr[100];
sprintf_s(TestStr, "total time : %lf sec", 0.001);
putText(img, TestStr, Point(10, 250), CV_FONT_NORMAL, 1, Scalar(0, 0, 0), 1, 1); //OutImg is Mat class;
///////////////////////////////////////////////////
*/
imshow("show0", img);
waitKey(0);
return 0;
}
...