Opencv+Python(3):在Opencv中绘制函数


在OpenCV中绘制函数

目标

  • 学习使用OpenCV绘制不同的几何形状
  • 你将学习这些函数:cv2.line()cv2.circle()cv2.rectangle()cv2.ellipse()cv2.putText()

在所有上述功能中,您将看到如下所示的一些常见参数:

  • img:想要绘制形状的图像
  • 颜色:形状的颜色。对于BGR,将它作为元组传递,例如:(255,0,0)for blue。对于灰度,只需传递标量值即可。
  • 厚度:线或圆的厚度等。如果像圆圈这样的闭合数字传递-1,它将填充形状。默认厚度= 1
  • lineType:行的类型,无论是8连接,反走样线等。默认情况下,它是8连接。 cv2.LINE_AA给出了曲线非常好的消除锯齿线。

绘制线

要绘制线条,您需要传递线条的起始和结束坐标。我们将创建一个黑色图像,并从左上角到右下角画一条蓝线。

import  numpy  as  np
import  cv2

#创建一个黑色图像
img  =  np 。零((512 ,512 ,3 ), NP 。UINT8 )

#画一条厚度为
5px 的对角蓝线img  =  cv2 。线(IMG ,(0 ,0 ),(511 ,511 ),(255 ,0 ,0 ),5 )

绘制矩形

要绘制矩形,需要矩形的左上角和右下角。这次我们将在图像的右上角画一个绿色的矩形。

img  =  cv2 。矩形(IMG ,(384 ,0 ),(510 ,128 ),(0 ,255 ,0 ),3 )

绘图圈

要绘制一个圆,需要它的中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。

img  =  cv2 。圈(IMG ,(447 ,63 ), 63 , (0 ,0 ,255 ), - 1 )

绘制椭圆

要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度,短轴长度)。angle是椭圆在逆时针方向上的旋转角度。startAngleendAngle表示从长轴顺时针方向测量的椭圆弧的起点和终点。即给出值0和360给出完整的椭圆。有关更多详细信息,请查看cv2.ellipse()的文档。下面的示例在图像的中心绘制一个半椭圆。

img  =  cv2 。椭圆(IMG ,(256 ,256 ),(100 ,50 ),0 ,0 ,180 ,255 ,- 1 )

绘制多边形

要绘制多边形,首先需要顶点的坐标。将这些点转换为ROWSx1x2ROWS是顶点数的形状数组,它应该是类型的int32。在这里我们绘制一个带有四个黄色顶点的小多边形。

pts  =  np 。阵列([[ 10 ,5 ],[ 20 ,30 ],[ 70 ,20 ],[ 50 ,10 ]], NP 。INT32 )
PTS  =  PTS 。重塑((- 1 ,1 ,2 ))
IMG  =  CV2 。折线(IMG ,[ PTS ],真,(0 ,255 ,255))

注意

如果第三个参数是False,你会得到一个多段线加入所有的点,而不是一个封闭的形状。

注意

cv2.polylines()可以用来绘制多行。只需创建一个您想要绘制的所有线条的列表并将其传递给该函数。所有线路将被单独绘制。绘制一组线要比调用cv2.line()每一条线更好,更快。

添加文字到图像:

要将图片放入图片中,您需要指定以下内容。
  • 要写入的文本数据
  • 要放置的位置坐标(即数据开始处的左下角)。
  • 字体类型(查看支持的字体的cv2.putText()文档)
  • 字体比例(指定字体的大小)
  • 定期的东西,如颜色,厚度,线型等为了更好看,建议。lineType = cv2.LINE_AA

我们将以白色在我们的图像上编写OpenCV

font  =  cv2 。FONT_HERSHEY_SIMPLEX
cv2 。putText (IMG ,‘的OpenCV‘ ,(10 ,500 ), 字体, 4 ,(255 ,255 ,255 ),2 ,CV2 。LINE_AA )

结果

所以是时候看看我们绘图的最终结果了。正如您在之前的文章中所学,显示图像以查看它。

原文地址:https://www.cnblogs.com/lincolnlu/p/8675591.html

时间: 2024-11-08 03:44:40

Opencv+Python(3):在Opencv中绘制函数的相关文章

Python 调用JS文件中的函数

1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r"web.js").read().decode("utf-8")).call('loginHandle','steam') 语句解析,open后跟所执行的js文件位置,call后第一个单引号引起来的为所执行的js文件的某个function,第二个单引号是前面函数的参数这里为function loginHand

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

OpenCV图像处理中常用函数汇总(2)

1 // 霍夫线变换 hough 2 vector<Vec2f> lines;//定义一个矢量结构lines用于存放得到的线段矢量集合 3 HoughLines(dstImage,lines,1,CV_PI/180,150); 4 //依次在图中绘制出每条线段 5 for (size_t i = 0;i < lines.size();i++) 6 { 7 float rho = lines[i][0],theta = lines[i][1]; 8 Point pt1,pt2; 9 dou

【python下使用OpenCV实现计算机视觉读书笔记3】读写视频文件

Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性. 对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数. 对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L). 简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作为其唯一的参数,实现者可以通过该指针进一步获取Lua代码中实际传入的参数.返回值是整型,表示该

OpenCV Python教程(1、图像的载入、显示和保存)

本文转载自 OpenCV Python教程(1.图像的载入.显示和保存)     作者 Daetalus 本文是OpenCV  2 Computer Vision Application Programming Cookbook读书笔记的第一篇.在笔记中将以Python语言改写每章的代码. PythonOpenCV的配置这里就不介绍了. 注意,现在OpenCV for Python就是通过NumPy进行绑定的.所以在使用时必须掌握一些NumPy的相关知识! 图像就是一个矩阵,在OpenCV fo

Opencv研读笔记:haartraining程序之icvCreateCARTStageClassifier函数详解~

之前介绍了haartraining程序中的cvCreateMTStumpClassifier函数,这个函数的功能是计算最优弱分类器,这篇文章介绍一下自己对haartraining中关于强分类器计算的一些理解,也就是程序中的icvCreateCARTStageClassifier函数. 由于haartraining是基于HAAR特征进行adaboost训练,对于HAAR特征的处理比较繁琐,采用了奇数弱分类器补充针对翻转特征最优弱分类器计算的代码,所以代码看起来较为冗长.此外,其采用了较多的中间结构

matlab中subplot函数的功能 类似python

原文:http://blog.163.com/my_it_dream_pwj/blog/static/17841430520112294342649/ 和python 中类似 subplot 功能 分割figure,创建子坐标系 语法 h = subplot(m,n,p) or subplot(mnp)       subplot(m,n,p,'replace')       subplot(m,n,P)       subplot(h)       subplot('Position',[le

ubuntu14 opencv python 安装

本文记录了Ubuntu 14.04下使用源码手动安装OpenCV 3.0的过程.此外记录了在Python中安装及载入OpenCV的方法. 1.安装OpenCV所需的库(编译器.必须库.可选库) GCC 4.4.x or later CMake 2.6 or higher Git GTK+2.x or higher, including headers (libgtk2.0-dev) pkg-config Python 2.6 or later and Numpy 1.5 or later wit

使用OpenCV查找二值图中最大连通区域

http://blog.csdn.net/shaoxiaohu1/article/details/40272875 使用OpenCV查找二值图中最大连通区域 标签: OpenCVfindCoutours 2014-10-19 22:31 2802人阅读 评论(0) 收藏 举报  分类: 图像与OpenCV(15)  版权声明:本文为shaoxiaohu原创文章,欢迎转载,请注明出处,谢谢. 上一篇博文中介绍了matlab查找最大连通区域的方法,OpenCV函数中也有类似的函数与之对应,findC