绘制形状比较简单,基本上没啥子好说的,见代码。

演示代码:#include

#include

using namespace std;

using namespace cv;

Mat bgImage;

const char* drawdemo_win = "draw shapes and text demo";

void MyLines();

void MyRectangle();

void MyEllipse();

void MyCircle();

void MyPolygon();

void RandomLineDemo();

int main(int argc, char** argv) {

bgImage = imread("e:/2.png");

if (!bgImage.data) {

printf("could not load image...\n");

return -1;

}

MyLines();

MyRectangle();

MyEllipse();

MyCircle();

MyPolygon();

putText(bgImage, "Hello OpenCV", Point(300, 300), CV_FONT_HERSHEY_COMPLEX, 1.0, Scalar(12, 23, 200), 3, 8);

namedWindow(drawdemo_win, CV_WINDOW_AUTOSIZE);

imshow(drawdemo_win, bgImage);

//RandomLineDemo();

waitKey(0);

return 0;

}

void MyLines() {

Point p1 = Point(20, 30);

Point p2;

p2.x = 400;

p2.y = 400;

Scalar color = Scalar(0, 0, 255);

line(bgImage, p1, p2, color, 1, LINE_AA);

}

void MyRectangle() {

Rect rect = Rect(200, 100, 300, 300);

Scalar color = Scalar(255, 0, 0);

rectangle(bgImage, rect, color, 2, LINE_8);

}

void MyEllipse() {

Scalar color = Scalar(0, 255, 0);

ellipse(bgImage, Point(bgImage.cols / 2, bgImage.rows / 2), Size(bgImage.cols / 4, bgImage.rows / 8), 90, 0, 360, color, 2, LINE_8);

}

void MyCircle() {

Scalar color = Scalar(0, 255, 255);

Point center = Point(bgImage.cols / 2, bgImage.rows / 2);

circle(bgImage, center, 150, color, 2, 8);

}

void MyPolygon() {

Point pts[1][5];

pts[0][0] = Point(100, 100);

pts[0][1] = Point(100, 200);

pts[0][2] = Point(200, 200);

pts[0][3] = Point(200, 100);

pts[0][4] = Point(100, 100);

const Point* ppts[] = { pts[0] };

int npt[] = { 5 };

Scalar color = Scalar(255, 12, 255);

fillPoly(bgImage, ppts, npt, 1, color, 8);

}

void RandomLineDemo() {

RNG rng(12345);

Point pt1;

Point pt2;

Mat bg = Mat::zeros(bgImage.size(), bgImage.type());

namedWindow("random line demo", CV_WINDOW_AUTOSIZE);

for (int i = 0; i

pt1.x = rng.uniform(0, bgImage.cols);

pt2.x = rng.uniform(0, bgImage.cols);

pt1.y = rng.uniform(0, bgImage.rows);

pt2.y = rng.uniform(0, bgImage.rows);

Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));

if (waitKey(50) > 0) {

break;

}

line(bg, pt1, pt2, color, 1, 8);

imshow("random line demo", bg);

}

}

(画几何形状和文字)

(随机画线)

代码说明:

Point表示2D平面上一个点x,y   Point p;

p.x = 10;

p.y = 8;

or

p = Pont(10,8);

Scalar表示四个元素的向量   Scalar(a, b, c);// a = blue, b = green, c = red表示RGB三个通道画线 cv::line (LINE_4\LINE_8\LINE_AA)

画椭圆cv::ellipse

画矩形cv::rectangle

画圆cv::circle

画填充cv::fillPoly

填充矩形

可以通过多边形填充来填充矩形

随机数生成cv::RNG生成高斯随机数gaussian (double sigma)

生成正态分布随机数uniform (int a, int b)

绘制添加文字putText函数 中设置fontFace(cv::HersheyFonts),

- fontFace, CV_FONT_HERSHEY_PLAIN

- fontScale , 1.0, 2.0~ 8.0

---------------------

作者:hackpig

来源:www.skcircle.com

版权声明:本文章代码及资料部分或全部来自贾志刚老师的视频,勇哥只是在个人理解的基础上做学习笔记,转载请附上博文链接!

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

收藏 | 0点赞 | 0打赏作者

opencv 叠加文字_opencv3.1学习笔记(8) 绘制形状与文字相关推荐

  1. OpenCvSharp 学习笔记7 --绘制图形和文字

    一 绘制线条 API :Cv2.Line() 参数 说明 img: 源图像 pt1: 第一个点 pt2: 第二个点 color 线条颜色 thickness: 线条的厚度(粗细) lineType: ...

  2. opencv学习笔记五--文件扫描+OCR文字识别

    opencv学习笔记五--文件扫描+OCR文字识别 文件扫描 定义函数 边缘检测 获取轮廓 变换 OCR文字识别 环境配置 代码 文件扫描 # 导入工具包 import numpy as np imp ...

  3. Adobe Illustrator学习笔记一 – 绘制K33图

    Adobe Illustrator学习笔记一 – 绘制图论中的K33图 作者: kagula 时间 2020-11-14 概要        阅读对象为非美工专业的计算机程序员, 所以对程序员来说显而 ...

  4. (07)绘制形状与文字

    /* *绘制形状与文字cv::Point数据结构:代表了一个点的坐标,一个二维点的坐标Point表示2D平面上一个点x, yPoint p;p.x = 10;p.y = 8;orp = Point(1 ...

  5. python编辑器文字放大_python学习笔记000

    写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...

  6. 用opencv实现目标追踪的学习笔记——camshift

    小白的学习笔记--opencv camshift -基础:零c++基础,零opencv基础,简单C语言基础,略知数字图像处理知识 -工具:VS2015+opencv 2.4.13 -sample: E ...

  7. python怎么测试opencv安装是否成功_学习笔记:自己编译安装OpenCV+测试opencv安装是否成功...

    跟着猿人学python,我的学习笔记.本次的配置在ubuntu中成功安装了opencv,并通过以下方法测试成功了.现将具体的安装及测试过程整理出来分享给大家. 1. 安装编译依赖的软件包 # 安装读写 ...

  8. Word学习笔记:P1-页面简介文字编辑

    文章目录 前言 一.页面简介 二.文字编辑 前言 学习课程为 PAPAYA电脑教室 的Word课程. 课程与课件链接:课程链接.练习档案 一.页面简介 Word的界面如下所示,最上方为功能区. 初学者 ...

  9. OpenCV——Python:像素调整、图片裁剪、形状与文字设置3

    像素调整与图片裁剪 import cv2img = cv2.imread("2.jpg") # 读取图像 print(img.shape) # 查看图像长,宽,通道数imgResi ...

最新文章

  1. java多线程中的join方法详解
  2. boost::interprocess::message_queue用法的测试程序
  3. 记录:通过SSH远程连接Ubuntu
  4. Java中PO、DO、TO、DTO、 VO、 BO、POJO 、DAO的概念
  5. linux常用翻页,20150823-Linux常用命令
  6. 大数组情况下栈溢出解决
  7. XBRL 可扩展商业报告语言
  8. 大数据技术全解之曹冲称象与大数据思想
  9. SQL Server 2008中文版关系数据库基础与实践教程pdf
  10. 雾霾的结构化责任主体
  11. 你会装系统吗?(安装macOS系统-使用OpenCore引导吃上黑苹果)
  12. hrbust 哈理工oj 网线【MST+Prim】
  13. 视频插帧算法之光流法
  14. c语言实验报告指针数组,C语言实验报告-数组与指针.doc
  15. 'E:\AndroidSDK\platform-tools\adb.exe start-server' failed -- run manually if necessary
  16. 一.全局定位--开源定位框架LIO-SAM_based_relocalization实录数据集测试
  17. 建立数据驱动,关键字驱动和混合Selenium框架这些你了解吗
  18. mysql格式化日期的函数_MySql格式化日期函数
  19. 基于C++的泡泡堂游戏设计与实现
  20. python:蒙特卡罗方法计算圆周率

热门文章

  1. 扩展 VirtualBox 已分配磁盘的方法
  2. security❀javascript 2
  3. centos 8 的图形操作界面在哪_文泰刻绘2020下载-文泰刻绘2020官方版下载[图形化编程平台]...
  4. 嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统
  5. CVPR专访阿里iDST华先胜:电商搜索与城市大脑,本质上都是视觉系统问题|CVPR 2017...
  6. ubuntu20.04更换阿里的软件源
  7. 计算机技术与软件专业技术资格(水平)考试—— 软考中级 网络工程师笔记one
  8. 透明背景图片(PNG)制作
  9. 基于JavaSpringBoot+Vue+uniapp微信小程序实现在线房屋装修管理系统
  10. 吐槽java之《程序员的呐喊》读后总结