opencv学习历程3 ---- 绘制基本图形

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include 
#include 
#include 
#include 
#include  
#include 
using namespace cv;
using namespace std;


int main()
{

	Mat img(300, 300, CV_8UC3, Scalar(0, 0, 0)); 
	
	// 划线
	line(img, Point(10, 10), Point(200, 200), Scalar(0, 255, 255), 2, 8);
	
	/*
	// 画圆
	circle(img, Point(150, 150), 100, Scalar(255, 255, 0), 2, 8);   // 线宽如果设置为负数,那么就会变成填充的圆
	circle(img, Point(150, 150), 100, Scalar(255, 255, 0), -1, 8);   // 线宽如果设置为负数,那么就会变成填充的圆
	*/


	// 画矩形   线宽如果设置为负数,那么就会变成填充的矩形
	//rectangle(img, Rect(10, 10, 200, 200), Scalar(0, 0, 255), 2, 8);
	 

	// 画椭圆   0 : 表示这个椭圆旋转多少度   0 -> 360  表示绘制一个完整的椭圆
	ellipse(img, Point(150, 150), Size(100, 50), 0, 0, 360, Scalar(0, 0, 255), 2, 8); // 线宽如果设置为负数,那么就会变成填充的椭圆

	// 隐式转换成Point
	Point  ppt[] = { {120, 50}, {180, 50}, {210, 100}, {180, 150}, {120, 150}, {90, 100} };
	
	const Point* pts[] = { ppt };
	const int n = 6;
	// 画一个填充的多边形,注意这里的const不能少,并且不能直接取 &ppt 要向上面这样操作
	// fillPoly(img, pts, &n, 1, Scalar(0, 0, 255), 8);

	// 画一个不填充的多边形
	// polylines(img, pts, &n,1,  true, Scalar(100, 100, 100), 2, 8);



	// 添加字幕
	string str = "China";
	putText(img, str, { 100,100 }, CV_FONT_HERSHEY_COMPLEX, 2, Scalar(0, 0, 255), 2, 8);   // 我这里用黑体字体会出错?? 为什么呢?



	imshow("img", img);
	waitKey(0);
	return 0;
}

 

你可能感兴趣的:(opencv,opencv,c++)