Pytohn OpenCV 绘图函数

绘图函数都需要设置一些参数

img:想要绘制图形的那个图像

color:形状的颜色。

thickness:线条的粗细(如果给一个闭合图形设置为-1,那么这个图形会被填充)。默认值是1.

linetype:线条的类型,8连接,抗锯齿等。默认情况是8连接。cv2.LINE_AA为抗锯齿。

画线

cv2.line(图像,起点,终点,颜色,线条类型)

# -*- coding: utf-8 -*-

import cv2
import numpy as np

img = np.zeros((512, 512, 3), np.uint8)

#画一条线
cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)

cv2.imshow(‘image‘, img)
cv2.waitKey(0)
cv2.destroyAllWindows()

画矩形

cv2.rectangle(图像,左上角顶点,右下角顶点, 颜色,线条类型)

#画一个矩形
cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)

画圆

cv2.circle(图像, 圆心,半径,颜色,线条类型)

#画一个园
cv2.circle(img, (447, 63), 63, (0, 0, 255), -1)

画椭圆

cv2.ellipse(图像,中心点坐标,长轴短轴,逆时针方向旋转角度,顺时针方向起始角度,顺时针方向结束角度,颜色, 线条类型)

#画一个椭圆
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, (255, 0, 0), -1)

画多边形

需要指定每个顶点的坐标。

用坐标构造一个数组,行数就是点的数目。

数组的数据类型必须为int32

#画一个多边形
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))

如果第三个参数时False,那么多边形是不闭合的(首尾不相接)

在图片上添加文字

需要的参数:

要绘制的文字

绘制的位置

字体类型

字体大小

字体的属性(颜色,粗细,线条类型等)

#添加文字
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, ‘OpenCV‘, (10, 500), font, 4, (255, 255, 255), 2)

综合示例

# -*- coding: utf-8 -*-

import cv2
import numpy as np

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, 180, (255, 0, 0), -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)

winname = ‘example‘
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyAllWindows()

原文地址:https://www.cnblogs.com/wbyixx/p/9393791.html

时间: 2024-10-09 20:42:23

Pytohn OpenCV 绘图函数的相关文章

opencv学习之路(4)、Mat类介绍,基本绘图函数

一.Mat类创建 1 #include <opencv2/opencv.hpp> 2 using namespace cv; 3 4 void main(){ 5 Mat img1=imread("E://1.jpg"); 6 Mat img2(img1); 7 Mat img3=img1; 8 Mat img4=img1.clone(); 9 Mat img5; 10 img1.copyTo(img5); 11 12 cvtColor(img1,img1,CV_BGR2H

5、opencv中的绘图函数

1.目标 a.学习使用 OpenCV 绘制不同几何图形 b. 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),cv2.putText() 等. 2.代码 上面所有的这些绘图函数需要设置下面这些参数: img:你想要绘制图形的那幅图像. color: 形状的颜色. 以 RGB 为例, 需要传入一个元组, 例如: (255,0,0)代表蓝色.对于灰度图只需要传入灰度值. thickness:线条的粗细.如果给一个

OpenCV for Python 学习 (一 绘图函数)

本人的学习笔记主要记录的是学习opencv-python-tutorials这本书中的笔记 今天晚上简单学习OpenCV for Python如何绘图,主要用了这几个函数(这几个函数可在:http://docs.opencv.org/modules/core/doc/drawing_functions.html 找到): cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) cv2.circle(img, center,

OpenCv学习笔记(七)---OpenCv中的基本绘图函数,圆,椭圆,线段,矩形,多边形的绘制(1)

(一)本节教程的目的 本节你将学到: 1--如何使用Point在图像中定义2D点 2--如何以及为何使用Scalar 3--用OpenCv的函数Line绘直线 4--用OpenCvd的函数ellipse绘制椭圆 5--用OpenCv的函数rectangle绘矩形 6--用OpenCv的函数circle绘圆 7--用OpenCv的函数fillPoly绘填充多边形 (二)原理,本节我们将大量使用Point和Scalar这两个结构: **********************************

6、【opencv入门】Mat类介绍,基本的绘图函数

一.Mat类 1.Mat类的创建 1 Mat img;//创建无初始化矩阵 2 Mat img1(200,100,CV_8UC1);//200行,100列(长200,宽100) 3 Mat img2(Size(200,100),CV_8UC3,Scalar(0,255,0));//长100,宽200 4 Mat img3(200,100,CV_8UC3,Scalar(0,255,0));//创建200行,100列的8位三通道矩阵 5 Mat img4(200,100,CV_8UC1,Scalar

OpenCV中的绘图函数

OpenCV可以用来绘制不同的集合图形,包括直线,矩形,圆,椭圆,多边形以及在图片上添加文字.用到的绘图函数包括 cv2.line(),cv2.circle(),cv2.rectangle() ,cv2.putText() 等等. 这些绘图函数需要设置参数如: ? img:你想要绘制图形的那幅图像.? color:形状的颜色.以 RGB 为例,需要传入一个元组,例如: (255,0,0 )代表蓝色.对于灰度图只需要传入灰度值.? thickness:线条的粗细.如果给一个闭合图形设置为 -1,那

Scilab 的绘图函数(1)

Scilab 的绘图函数 plot 函数 最基本的是 plot 函数,与 matlab 中的plot 函数类似. xdata = linspace(1,10,50); ydata = sin(xdata); plot(xdata, ydata); 对函数绘图,不需要事先计算出 ydata,比如下面的例子画出的结果是相同的. plot (xdata, sin); 这样还能节省些内存占用. 如果只设置总的标题,可以这样操作: title("My Plot"); 如果还要设置XY坐标轴的标题

emgu中对应opencv的函数查询

自己以前做过一些C#工程的开发,所以对C#比较熟悉.接触opencv时,发现其是用C++编写的,网上的资料比较多.所以就想一边学习C++一边学opencv,学了几天后发现很痛苦,c++和c#差别太大,自己始终脱离不了C#的思维.后来就发现了EMGU 是opencv的.Net封装库.但是网上emgu的资料太少了,只能看opencv的资料搞emgu.有的时候opencv中的函数在emgu中找不到.比如说opencv中的 goodFeaturesToTrack函数,cvInvoke中就没有,其实被封装

Scilab 的绘图函数(2)

一幅图是由许多元素组成的.包括图标题,x轴标签,y轴标签,刻度线等.图1给出了各个元素的一个示意图. 这些所有的元素在scilab中都是可以用代码控制的. 标题 上个笔记上介绍了用xtitle()函数可以在图上添加标题.比如: title("My Plot"); 实际上,title函数有三种形式: title(my_title) title(my_title,<Property>) title(<axes_handle>,<my_title>,<