- 浏览: 496296 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
opencv 绘图功能
学习画线、圆和矩形等多种几何形状,给图片添加文字。
绘制各种几何形状、添加文字
OpenCV函数:cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText()
绘制形状的函数有一些共同的参数,
img:要绘制形状的图片
color:绘制的颜色,绘制彩色就传入BGR的一组值,如(255,0,0);灰度图,传入一个灰度值就行
thickness:线宽,默认为1;对于矩形/圆之类的封闭形状而言,传入-1表示填充形状
画线
line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
画矩形
rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
画圆
circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
画椭圆
ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
# 参数2:椭圆中心(x, y)
# 参数3:x / y轴的长度
# 参数4:angle–椭圆的旋转角度(顺时针)
# 参数5:startAngle–椭圆的起始角度(顺时针)
# 参数6:endAngle–椭圆的结束角度(顺时针)
画多边形
画多边形需要指定一系列多边形的顶点坐标,相当于从第一个点到第二个点画直线,再从第二个点到第三个点画直线….
# 定义四个顶点坐标
pts = np.array([[10, 5], [50, 10], [70, 20], [20, 30]], np.int32)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
绘制多条直线
使用cv2.polylines()要比cv2.line()高效很多
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
cv2.polylines(img, [line1, line2, line3], True, (0, 255, 255))
添加文字
使用cv2.putText()添加文字,它的参数也比较多,
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
参数2:要添加的文本
参数3:文字的起始坐标(左下角为起点)
参数4:字体
参数5:文字大小(缩放比例)
参数6:LineTypes
http://ex2tron.wang/opencv-python-drawing-function/
填充填充多边形
fillPoly(img, pts, color, lineType=None, shift=None, offset=None)
# pts多边形的点位置
学习画线、圆和矩形等多种几何形状,给图片添加文字。
绘制各种几何形状、添加文字
OpenCV函数:cv2.line(), cv2.circle(), cv2.rectangle(), cv2.ellipse(), cv2.putText()
绘制形状的函数有一些共同的参数,
img:要绘制形状的图片
color:绘制的颜色,绘制彩色就传入BGR的一组值,如(255,0,0);灰度图,传入一个灰度值就行
thickness:线宽,默认为1;对于矩形/圆之类的封闭形状而言,传入-1表示填充形状
画线
line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
画矩形
rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
画圆
circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
画椭圆
ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
# 参数2:椭圆中心(x, y)
# 参数3:x / y轴的长度
# 参数4:angle–椭圆的旋转角度(顺时针)
# 参数5:startAngle–椭圆的起始角度(顺时针)
# 参数6:endAngle–椭圆的结束角度(顺时针)
画多边形
画多边形需要指定一系列多边形的顶点坐标,相当于从第一个点到第二个点画直线,再从第二个点到第三个点画直线….
# 定义四个顶点坐标
pts = np.array([[10, 5], [50, 10], [70, 20], [20, 30]], np.int32)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
绘制多条直线
使用cv2.polylines()要比cv2.line()高效很多
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
cv2.polylines(img, [line1, line2, line3], True, (0, 255, 255))
添加文字
使用cv2.putText()添加文字,它的参数也比较多,
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
参数2:要添加的文本
参数3:文字的起始坐标(左下角为起点)
参数4:字体
参数5:文字大小(缩放比例)
参数6:LineTypes
http://ex2tron.wang/opencv-python-drawing-function/
填充填充多边形
fillPoly(img, pts, color, lineType=None, shift=None, offset=None)
# pts多边形的点位置
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 def main(): # =================================画线 # 创建一副黑色的图片 img = np.zeros((512, 512, 3), np.uint8) # 画一条线宽为5的蓝色直线,参数2:起点,参数3:终点 cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5) # =================================画矩形 # 画一个绿色边框的矩形,参数2:左上角坐标,参数3:右下角坐标 cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) # =================================画圆 # 画一个填充红色的圆,参数2:圆心坐标,参数3:半径 # cv2.circle(img, (447, 63), 63, (0, 0, 255), -1) cv2.circle(img, (447, 63), 63, (0, 0, 255), 1) # =================================画椭圆 # 在图中心画一个填充的半圆 cv2.ellipse(img, (256, 256), (100, 50), 45, 0, 180, (255, 0, 0), 1) # 参数2:椭圆中心(x, y) # 参数3:x / y轴的长度 # 参数4:angle–椭圆的旋转角度(顺时针) # 参数5:startAngle–椭圆的起始角度(顺时针) # 参数6:endAngle–椭圆的结束角度(顺时针) # =================================画多边形 # 定义四个顶点坐标 pts = np.array([[10, 5], [50, 10], [70, 20], [20, 30]], np.int32) print("pts = ", pts) # 顶点个数:4,矩阵变成4*1*2维 pts = pts.reshape((-1, 1, 2)) print("pts2 = ", pts) print("[pts] = ", [pts]) cv2.polylines(img, [pts], True, (0, 255, 255)) # polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None) # =================================绘制多条直线 # 使用cv2.polylines()画多条直线 line1 = np.array([[100, 20], [300, 20]], np.int32).reshape((-1, 1, 2)) line2 = np.array([[100, 60], [300, 60]], np.int32).reshape((-1, 1, 2)) line3 = np.array([[100, 100], [300, 100]], np.int32).reshape((-1, 1, 2)) cv2.polylines(img, [line1, line2, line3], True, (0, 255, 255)) # =================================添加文字 # 添加文字 font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img, 'ex2tron', (10, 500), font, 2, (255, 255, 255), 2, lineType=cv2.LINE_AA) # putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None) # =================================填充填充多边形 # 多边形的点位置 tri1 = np.array([[0, 0], [25, 10], [10, 20]], np.int32) cv2.fillPoly(img, [tri1], (255, 255, 255)) cv2.imshow('line', img) cv2.waitKey(0) if __name__ == '__main__': main()
发表评论
-
识别图片中的人脸
2018-10-31 21:21 793识别图片中的人脸 # -*-encoding:ut ... -
opencv 霍夫变换(识别出图像中的直线和圆)
2018-10-23 20:34 3114# -*-encoding:utf-8-*- import ... -
opencv 模板匹配(在大图中找小图)
2018-10-22 21:31 8386# -*-encoding:utf-8-*- import ... -
opencv 直方图
2018-10-22 21:30 495# -*-encoding:utf-8-*- import ... -
opencv 轮廓特征
2018-10-21 20:35 1233# -*-encoding:utf-8-*- import ... -
opencv 轮廓
2018-10-21 20:34 517# -*-encoding:utf-8-*- import ... -
opencv 膨胀腐蚀开闭
2018-10-21 20:34 873# -*-encoding:utf-8-*- import ... -
opencv 边缘检测
2018-10-21 20:32 765# -*-encoding:utf-8-*- import ... -
opencv 平滑图像
2018-10-17 21:25 720opencv 平滑图像 模糊/平滑图片来消除图片噪声 O ... -
opencv 图像混合
2018-10-17 20:58 706opencv 图像混合 图片间的数学运算,如相加、按位运算 ... -
opencv 图像几何变换
2018-10-16 19:36 914opencv 图像几何变换 实现旋转、平移和缩放图片 了解仿 ... -
opencv 阈值分割
2018-10-16 16:02 1231opencv 阈值分割 同的阈值方法”二值化”图像。 使用 ... -
opencv 颜色空间转换
2018-10-15 19:42 1308opencv 颜色空间转换 颜色空间转换,如BGR↔Gray ... -
openvc 图像基本操作
2018-10-15 19:11 973openvc 图像基本操作 访问和修改图片像素点的值 px ... -
Python OpenCV 基本操作
2018-10-12 22:46 393Python OpenCV 基本操作 加载图片,显示图片, ... -
Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运算)
2018-10-12 22:32 5341Python OpenCV 形态学操作(腐蚀膨胀,开运算和闭运 ...
相关推荐
在本篇文章中,我们将深入探讨OpenCV的绘图功能,了解如何利用这个功能进行图像分析、处理以及可视化。 首先,OpenCV提供了一系列的函数,如`cv2.line()`, `cv2.circle()`, `cv2.rectangle()`, `cv2.polygon()`等,...
运行这个程序,你会看到一个显示有红色矩形和绿色文本的窗口,这就是OpenCV绘图功能的基本应用。通过调整参数和尝试其他绘图函数,你可以创造出更复杂的图像效果,实现各种视觉呈现。 在实际开发中,OpenCV的图像...
在本项目中,我们将关注如何利用OpenCV来实现一个基础的画板功能。这个画板允许用户在界面上自由绘制,类似于电子白板或者涂鸦应用。 首先,我们需要了解OpenCV中的基本图形绘制函数。`cv2.line()`用于绘制直线,`...
三、OpenCV绘图功能 在OpenCV中,我们可以使用`cv::line()`, `cv::circle()`, `cv::rectangle()`, `cv::polylines()`等函数来绘制线条、圆、矩形和多边形。这些函数接受起点、终点、半径、边框宽度、颜色等参数,...
总的来说,"opencv绘图板源码.zip"提供了一个实践OpenCV图像处理和绘图功能的平台,涵盖了从基本的图像显示到复杂的用户交互。通过分析和学习这个源码,开发者可以加深对OpenCV的理解,提升在C++环境中进行图像处理...
在OpenCV库中,绘图功能是其基本且重要的部分,尤其对于图像处理和计算机视觉应用来说。OpenCV,全称Open Source Computer Vision Library,是一个跨平台的计算机视觉库,支持多种编程语言,包括Python。在本篇内容...
"OpenCV例程鼠标绘图及保存"这个项目展示了如何利用OpenCV的功能实现用户通过鼠标在图像上绘制并保存这些修改。在这个过程中,我们主要涉及到以下几个关键知识点: 1. **OpenCV中的事件处理**:OpenCV提供了一套API...
本文将深入探讨如何使用OpenCV进行基本的图像绘图操作,这是初学者掌握OpenCV功能的一个重要步骤。 首先,OpenCV支持多种编程语言,包括Python、C++等,这里我们主要以Python为例。在Python环境中,你可以通过`...
ROS(Robot Operating System)是机器人领域...你可以根据需要扩展这个基础模板,使用OpenCV提供的各种功能,如特征检测、图像变换、目标识别等。同时,ROS的强大消息传递机制和节点管理使得多进程协同工作变得简单。
Qt Creator是一款强大的跨平台集成开发环境(IDE),主要用于C++编程,而OpenCV则是一个开源计算机视觉库,提供了丰富的图像处理和计算机视觉功能。 首先,我们需要确保已经安装了Qt Creator和OpenCV库。Qt Creator...
将运动的物体从背景中检测出来,通过色差的不同来将移动的物体于背景区别开,...使用一些OpenCV绘图功能来绘制交叉点,并且显示在跟踪的物体图像上,并且在整个监测运动的工程中,可以控制监测点的开关,运行和退出。
在计算机视觉领域,OpenCV(开源计算机视觉库)是一个广泛使用的库,用于处理图像和视频数据,进行各种图像处理和计算机视觉任务。本教程将详细讲解如何利用OpenCV实现一个类似Halcon的卡尺工具,用于进行精确的测量...
`GraphUtils.cpp`和`GraphUtils.h`这两个文件很可能是用户自定义的辅助工具类或函数,用于扩展OpenCV的绘图功能。在C++中,`.cpp`文件通常包含实现代码,而`.h`文件则包含类声明或函数原型,以便在其他源文件中进行...
接着,我们需要创建一个MFC对话框类,该类将承载图像显示和绘图功能。这个对话框通常会包含一个CStatic控件,我们可以通过自定义这个控件来显示OpenCV的IplImage或cv::Mat类型的图像。我们还需要实现OnPaint事件处理...
在OpenCV库中,我们可以利用其丰富的图形绘制功能来创建基本的图像和界面,实现一些简单但实用的视觉效果。这个“用OpenCV进行基本绘图”的压缩包可能包含了一系列示例代码,用于演示如何使用OpenCV进行图像绘制。...
7. 结果可视化:识别结果可以通过OpenCV的绘图函数展示,如`cv2.rectangle()`画矩形框,`cv2.putText()`添加文本注释,以直观地展示识别结果。 在实际项目中,开发者需要根据具体需求选择合适的算法和方法,并进行...
OpenCV库的结构主要分为几个核心部分:CXCORE提供了基础结构和算法,包括XML支持和绘图功能;CV部分专注于图像处理和视觉功能;HighGUI则包含了图形用户界面、图像和视频的输入输出;而CVCam则用于视频流处理。这些...
绘图指令是OpenCV中用来在图像上绘制图形和文字的功能。例如,可以使用绘图函数在图像上绘制矩形、圆形、线段等。此外,还可以对图像进行转换,如将彩色图像转换为灰度图像,或者在不同的彩色空间之间进行转换。 ...
首先,OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,提供了丰富的图像处理和计算机视觉功能。它包含C++、Python等多种语言的接口,使得开发者可以方便地在各种平台上进行...
**OpenCV与MFC结合实现图片显示** OpenCV(Open Source Computer Vision Library)是一个...在实际开发中,你可以进一步扩展这个基础,比如添加图像操作功能,或者与其他OpenCV功能(如图像分析、特征检测等)集成。