Opencv-python画图基础知识

相关函数介绍

1. Point

该数据结构表示了由其图像坐标 和 指定的2D点。可定义为:

Point pt;

pt.x = 10;

pt.y = 8;

或者

Point pt = Point(10, 8);

2. Scalar

表示了具有4个元素的数组。次类型在OpenCV中被大量用于传递像素值。

本节中,我们将进一步用它来表示RGB颜色值(三个参数)。如果用不到第四个参数,则无需定义。

我们来看个例子,如果给出以下颜色参数表达式:

Scalar( a, b, c )

那么定义的RGB颜色值为:Red = c, Green = b and Blue= a

3. Rectangle

C++: void rectangle(Mat& img,Point pt1, Pointpt2, const Scalar&color, intthickness=1,intlineType=8, intshift=0)

C++: void rectangle(Mat& img,Rect rec, const Scalar&color, intthickness=1, intlineType=8,intshift=0 )

Parameters:

img – 画矩形的对象
pt1 – 矩形的一个顶点,左上角的.
pt2 – 另一个顶点,右下角的.
rec – 确定矩形的另一种方式,给左上角坐标和长宽
color – 指定矩形的颜色或亮度(灰度图像),scalar(255,0,255)既可指定.
thickness – 矩形边框的粗细. 负值(like CV_FILLED)表示要画一个填充的矩形
lineType – 边框线型. (8 (or 0) - 8-connected line(8邻接)连接 线。
4 - 4-connected line(4邻接)连接线。
CV_AA - antialiased 线条。)

shift –坐标点的小数点位数

4. Line

C++: void line(Mat& img, Point pt1,Point pt2, const Scalar& color, int thickness=1, int lineType=8,int shift=0)

Parameters:

img – 图像.
pt1 – 线条起点.
pt2 – 线条终点.
color – 线条颜色.
thickness – 线条宽度.
lineType – 线型
Type of the line:

8 (or omitted) - 8-connected line.
4 - 4-connected line.
CV_AA - antialiased line.
shift – 坐标点小数点位数.

5. Circle

C++: void circle(Mat&img, Point center, intradius, const Scalar&color,intthickness=1, intlineType=8, intshift=0)

Parameters:

img – 要画圆的那个矩形.
center – 圆心坐标.
radius – 半径.
color – 圆边框颜色,scalar类型的
thickness – 正值表示圆边框宽度. 负值表示画一个填充圆形
lineType – 圆边框线型
shift – 圆心坐标和半径的小数点位数

7.Ellipse

C++: void ellipse(Mat& img, Point center,Size axes, double angle, double startAngle, double endAngle, const Scalar& color,int thickness=1, int lineType=8, int shift=0)

C++: void ellipse(Mat& img, constRotatedRect& box, const Scalar& color, int thickness=1, int lineType=8)

Parameters:

img – 椭圆所在图像.
center – 椭圆中心.
axes – 椭圆主轴一半的长度
angle – 椭圆旋转角度
startAngle – 椭圆弧起始角度
endAngle –椭圆弧终止角度
box – 指定椭圆中心和旋转角度的信息,通过 RotatedRect 或 CvBox2D. 这表示椭圆画在旋转矩形上(矩形是不可见的,只是指定了一个框而已)
color – 椭圆边框颜色.
thickness – 正值代表椭圆边框宽度,负值代表填充的椭圆
lineType – 线型
shift – 椭圆中心坐标和坐标轴的小数点位数

8. PolyLine

C++: void polylines(Mat& img, const Point** pts, const int* npts, int ncontours, bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
C++: void polylines(InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

Parameters:
img – 折线所在图像.
pts – 折线中拐点坐标指针.
npts – 折线拐点个数指针.
ncontours – 折线线段数量.
isClosed – 折线是否闭合.
color – 折线颜色.
thickness – 折线宽度.
lineType – 线型.
shift – 顶点坐标小数点位数.

9. PutText

void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )

Parameters:
img – 显示文字所在图像.
text – 待显示的文字.
org – 文字在图像中的左下角 坐标.
font – 字体结构体.
fontFace – 字体类型, 可选择字体:FONT_HERSHEY_SIMPLEX, FONT_HERSHEY_PLAIN, FONT_HERSHEY_DUPLEX,FONT_HERSHEY_COMPLEX, FONT_HERSHEY_TRIPLEX, FONT_HERSHEY_COMPLEX_SMALL, FONT_HERSHEY_SCRIPT_SIMPLEX, orFONT_HERSHEY_SCRIPT_COMPLEX,以上所有类型都可以配合 FONT_HERSHEY_ITALIC使用,产生斜体效果。
fontScale – 字体大小,该值和字体内置大小相乘得到字体大小
color – 文本颜色
thickness – 写字的线的粗细,类似于0.38的笔尖和0.5的笔尖
lineType – 线性.
bottomLeftOrigin – true, 图像数据原点在左下角. Otherwise, 图像数据原点在左上角.

案例代码

import numpy as np
import cv2

img=np.zeros((512,512,3),np.uint8)
cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.circle(img,(447,63), 63, (0,0,255), -1)

cv2.ellipse(img,(256,256),(100,50),0,0,270,255,-1)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))

font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

cv2.imshow("image",img)
cv2.waitKey(0)

运行结果
75468-20180504202835824-2049417112.png

转载于:https://www.cnblogs.com/smiler/p/8992405.html

我用python写了个画图板 先上效果: 炸裂画技,浮出纸面 一副惟妙惟肖的乌龟微笑图在我的画板上活灵活现,若玄武再世般威武雄壮,充满了一股说不出道不明的玄妙意味,周身若隐若现的王八之气,好似给他加持了天地的力量!四周虚空皆被他的浩荡之气震碎为玄白之色。 只见他他嘴角微翘,他可是这个世界的王!天下万物尽在他手中!还有谁能挡?嗯?还有谁? 这座神龟,当真恐怖如斯! 咳咳。以上就是我拥有这个画图板之后完成的最好的图片。 当然,只... 阅读详情

相关推荐

基于Opencv实现的多彩隔空画图

1.问题概述 人工智能带火了计算机视觉的人才需求,作为计算机视觉应用开发框架OpenCV也越来越受到欢迎,市场需求大增。因此,在学习Python的基础上,进行Opencv技术的学习是十分重要且有必要的。该项技术不仅有着成熟的学习框架,更有广泛的应用。学习一定的Opencv技术对于大学生来说,有着不同寻常的意义所在。 2.课程设计基本要求 设计报告的基本内容至少包括封面、正文、参考文献三部分。 1.封面 封面按照模版填写,不得随意更改。 2.正文 正文是设计报告的主体,具体由以下几部分组成: (1)背景介绍、

YuZhangWang的领域 2223

python椭圆代码_Python OpenCV cv2.ellipse()用法及代码示例

OpenCV-Python是旨在解决计算机视觉问题的Python绑定库。cv2.ellipse()方法用于在任何图像上绘制椭圆。用法: cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color [, thickness[, lineType[, shift]]])参数:image:它是要...

weixin_39594103的博客 2205

Python从0到50(三十六):OpenCV-实战画图

OpenCV-实战画图

904

opencv绘图函数(cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse() cv2. cv2.putText() )

主要有cv2.line()//画线, cv2.circle()//画圆, cv2.rectangle()//长方形,cv2.ellipse()//椭圆, cv2.putText()//文字绘制 主要参数 img:源图像 color:需要传入的颜色 thickness:线条的粗细,默认值是1 linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA 为...

weixin_36670529的博客 1万+

【opencv-python 小项目-隔空画图】在摄像头中使用不同颜色的笔进行隔空画图

在摄像头中使用不同颜色的笔进行隔空画图,摄像头能动态的检测出此时什么笔,能画出制定的颜色

weixin_43857838的博客 2945

Python之opencv画图

1.安装opencv pip install opencv-python 2.简单举例 (1)具体代码如下 import cv2 import numpy as np # (400, 300, 3):高度,宽度,维数 img_array = np.zeros((400, 300, 3)) # 蓝绿红 img_array[100][200] = (255, 0, 0) cv2.ims...

qq_38661599的博客 895

用python画图的基本知识_Opencv-python画图基础知识

相关函数介绍1. Point该数据结构表示了由其图像坐标 和 指定的2D点。可定义为:Point pt;pt.x = 10;pt.y = 8;或者Point pt = Point(10, 8);2. Scalar表示了具有4个元素的数组。次类型在OpenCV中被大量用于传递像素值。本节中,我们将进一步用它来表示RGB颜色值(三个参数)。如果用不到第四个参数,则无需定义。我们来看个例子,如果给出以下...

weixin_42510453的博客 388

46-OpenCVSharp —-Cv2.Ellipse() 函数功能(绘制椭圆形)详解

中心:椭圆的中心坐标 ((h, k))长轴半径:(a)短轴半径:(b)旋转角度:(\theta)这些函数使得 OpenCV 可以用于各种形状的绘制和检测任务。和可用于圆形的检测和绘制。可以绘制任意形状的多边形或折线。专门用于绘制椭圆。是一种用于轮廓检测的强大工具,适用于形状提取和分割任务。通过这些工具,你可以进行图形绘制、图像分析和目标检测等计算机视觉任务。

weixin_45590420的博客 1578

用python画的基本知识_Opencv-python画图基础知识

相关函数介绍1. Point该数据结构表示了由其图像坐标 和 指定的2D点。可定义为:Point pt;pt.x = 10;pt.y = 8;或者Point pt = Point(10, 8);2. Scalar表示了具有4个元素的数组。次类型在OpenCV中被大量用于传递像素值。本节中,我们将进一步用它来表示RGB颜色值(三个参数)。如果用不到第四个参数,则无需定义。我们来看个例子,如果给出以下...

weixin_39606575的博客 163

86-OpenCVSharp —-Cv2.Ellipse ()函数功能(用于绘制椭圆)详解

ellipse 函数是 OpenCV 中用于绘制椭圆的函数,广泛应用于图像处理、计算机视觉任务中,尤其是在目标检测、特征提取和图像可视化方面。它使用给定的旋转矩形(RotatedRect)来定义椭圆的位置、大小和旋转角度。

weixin_45590420的博客 1354

Python从0到100(六十六):Python OpenCV-实战画图

opencv可以实现gui拥有的功能——所以,opencv中也包含了鼠标事件——通过点击等等事件,执行相应的回调函数,实现指定的功能,最终实现交互!我们这里用到event——事件参数,当然,你可以修改它的名字# 第一个参数为窗体名称——指的是哪个窗体下执行# 第二个参数为鼠标回调函数的名称——传入函数名称,指的是传入整个函数声明,而不是直接执行函数if event == cv.EVENT_LBUTTONDOWN: # 触发事件为左键按下时。

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 2万+

简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...

python opencv如何实现简易画图板?本篇文章小编给大家分享一下python opencv实现简易画图板代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。代码如下:# -*- coding: utf-8 -*-"""Created on Sat May 19 17:34:54 2018@author: xxx"""import cv2 as cvimport n...

weixin_39560066的博客 169

【Python Opencv】Opencv画图形

在计算机视觉和图像处理中,OpenCV不仅可以处理图像和视频,还提供了一组功能强大的工具,用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上标注、分析和突出显示感兴趣的区域。本文将介绍如何使用Python和OpenCV绘制各种图形,包括线条、矩形、圆形等,以及如何添加文本。这对于图像处理和计算机视觉任务中的可视化和分析非常有用。目标学习使用 OpenCV 绘制不同的几何形状。

m0_62599305的博客 2360

Python OpenCV实战画图——这次一定能行!爆肝万字,建议点赞收藏~❤️❤️❤️

在上篇文章中我们已经介绍了Python OpenCV的详细入门基础知识,接下来让我们利用OpenCV进行一次画图的实战吧!

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 5741

OpenCV-Python实战(1)——OpenCV简介与图像处理基础

OpenCV 是一个的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时也提供了 Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。在本文中,将介绍 OpenCV 库,包括它的主要模块和典型应用场景,同时使用 OpenCV-Python 实战讲解图像处理基础要点。

盼小辉丶的博客 27万+

莆田市C++专项选拔第一轮题4

现在小明同学想要从两堆硬币中各选择一枚硬币,使得两枚硬币的面值之和 不超过 k。不同的硬币组合,就算面值相同,也视为不同的方案。现在他把这些硬币分成了两堆,已知两堆硬币分别有 n 和 m 枚硬币。可选方案有: (1,2), (1,1), (1,1), (5,2), (5,1), (5,1),共 6 种。第一行三个整数 n, m, k,分别表示第一堆硬币的数量,第二堆硬币的数量,以及面值之和的上限。对于30%的数据,1 ≤ n , m ≤ 1000 , 1 ≤ b , c ≤ 1000。

lpstudio的博客 925

【基础知识】4、python-opencv 超详细介绍

和Python一样,当前的OpenCV也有两个大版本,OpenCV2和OpenCV3。相比OpenCV2,OpenCV3提供了更强的功能和更多方便的特性。不过考虑到和深度学习框架的兼容性,以及上手安装的难度,这部分先以2为主进行介绍。如果不考虑视频应用,以上三个就是最核心和常用的模块了。Nearest Neighbors,用于在多维空间进行聚类和检索,经常和关键点匹配搭配使用。regularization)算法从使用的角度来看,和OpenCV2相比,OpenCV3的主要变化是更多的功能和更细化的模块划分。

呆呆的猫的博客 11万+

时间序列数据预测——15种时序大模型

本文综述了时间序列大模型(TSFM)的最新进展,系统介绍了11种主流模型(如TimeGPT、Lag-Llama、Moirai等)的架构特点、训练数据和创新点,并对比分析了它们在单变量/多变量预测、概率预测等功能上的差异。研究表明,基于"大规模预训练-微调/零样本"范式的TSFM在标准数据集(如M4、ETT)上展现出优于传统方法的性能,Time-MoE等模型更达到SOTA水平。但TSFM仍面临计算成本高、可解释性差等挑战,未来发展方向包括轻量级架构、多模态融合和可解释性增强。

m0_56592100的博客 4069

opencv-python图形图像处理入门基础知识

本文详细介绍了opencv-python的安装、加载图像文件、捕获摄像头、显示图像、鼠标事件捕获、键盘事件处理、几何图像绘制、颜色空间转换、图像阈值处理、图像修复等基础知识,适合开始学习opencv-python的初学者。

老猿Python 9781

多智能体强化学习之值函数分解:VDN、QMIX、QTRAN系列优缺点分析(转载)

关于多智能体强化学习中VDN,QMIX,QTRAN三个算法再值分解方向的研究成果。三个算法呈递进关系

qq_33328642的博客 5859

【论文详解】AlphaGenome——Sequence-to-Multimodal-Genome-Track

**AlphaGenome** 是由 **Google DeepMind** 于 2025 年 6 月发布的突破性 AI 模型,专门用于预测非编码区遗传变异的功能效应。该模型采用受 **U-Net** 启发的卷积架构结合 **Transformer** 模块,创新性地解决了传统模型在输入序列长度与预测分辨率之间的核心矛盾——能够在 **1M 碱基对的超长上下文** 下实现 **单核苷酸分辨率** 的精准预测。

zwhszdx的博客 959
上一篇: JSON C# Class Generator ---由json字符串生成C#实体类的工具
下一篇: Python类、模块、包的区别
dddp75921
博客等级 码龄12年 9粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值