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

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

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream> 
#include <string>
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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值