当前位置: 首页 > news >正文

领导高度重视门户网站建设今日新闻联播

领导高度重视门户网站建设,今日新闻联播,做转录组kog网站,网站建设入账时进那个会计科目OpenCV入门(四)快速学会OpenCV3画基本图形 1.画点 在OpenCV中,点分为2D平面中的点和3D平面中的点,区别就是3D中点多了一个z坐标。我们首先介绍2D中的点,坐标为整数的点可以直接用(x, y)代替,其中x是横坐标…

OpenCV入门(四)快速学会OpenCV3画基本图形

1.画点

在OpenCV中,点分为2D平面中的点和3D平面中的点,区别就是3D中点多了一个z坐标。我们首先介绍2D中的点,坐标为整数的点可以直接用(x, y)代替,其中x是横坐标、y是纵坐标。

比如定义一个点:

     pt=(100,200) #横坐标x=100,纵坐标y=200

画图时如果需要用到点,就可以直接用(x,y)作为参数代入。

比如有一个点的列表:

    # 要画的点的坐标points_list = [(160, 160), (136, 160), (150, 200), (200, 180), (120, 150), (145,
180)]

2.画矩形

全局函数rectangle用来通过对角线上的两个顶点绘制矩形,函数声明如下:

     cv.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]] ) cv.rectangle(img, rec, color[, thickness[, lineType[, shift]]] ) 

其中,参数
img表示矩形所在的图像;
pt1表示矩形的一个顶点;
pt2表示矩形对角线上的另一个顶点;
color表示线条颜色(BGR)或亮度(灰度图像,grayscale image);
thickness表示组成矩形的线条的粗细程度,取负值时(如CV_FILLED)函数绘制填充了色彩的矩形;line_type表示线条的类型;shift表示坐标点的小数点位数。

     import cv2 as cvimg = cv.imread("test.jpg")img1=cv.rectangle(img,(10,10),(30,40),(255,0,0),2)cv.imwrite("res.jpg",img1)#保存图片cv.imshow("res", img1)cv.waitKey(0)

在上述代码中,我们首先读取test.jpg,然后调用画矩形函数rectangle绘制一个矩形,其中点(10,10)是左上角顶点、点(30,40)是右下角顶点。颜色值是(255,0,0),是BGR形式,即蓝色分量值是255,因此显示的是蓝色。组成矩形的线条的粗细值是2。

画完后,我们保存到同目录下的res.jpg文件。

运行工程,结果如图所示。可以看到,窗口左上角的地方有一个蓝色边框的矩形。

****

3.画圆

全局函数circle用来绘制或填充一个给定圆心和半径的圆,函数声明如下:

     cv.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

其中,参数
img表示输入的图像(圆画在这个图像上);
center表示圆心坐标;radius表示圆的半径;
color表示圆的颜色,是BGR形式,例如蓝色为Scalar(255,0,0);
thickness如果是正数就表示组成圆的线条的粗细程度,否则表示圆是否被填充;
lineType表示线的类型;
shift表示圆心坐标点和半径值的小数点位数。

import numpy as np
import cv2 as cvimg = cv.imread("test.jpg")
point_size = 10
point_color = (0, 0, 255) # BGR
thickness = -1  # 要画的点的坐标
points_list = [(16, 16),  (35, 40) ]for point in points_list:cv.circle(img, point, point_size, point_color, thickness)thickness = 4# 画圆,圆心为:(60, 60),半径为:60,颜色为:point_color,实心线
cv.circle(img, (60, 60), 60, point_color, 0)cv.namedWindow("image")
cv.imshow('image', img)
cv.waitKey (10000) # 显示 10000 ms 即 10s 后消失
cv.destroyAllWindows()

首先读取图片test.jpg,然后在for循环中,第一次画实心圆(thickness是-1),第二次画空心圆(thickness是4),并且组成圆的线条的粗细程度是4。接着画一个半径是60的圆。

所有圆都是在图片test.jpg上画的。

运行工程,结果如图所示。

在这里插入图片描述

4.画椭圆

函数ellipse用来绘制或者填充一个简单的椭圆弧或椭圆扇形。圆弧被ROI矩形所忽略,反走样弧线和粗弧线使用线性分段近似值,所有的角都以角度的形式给定。

该函数声明如下:

    Ellipse(img, center, axes, angle, start_angle, end_angle, color, thickness=1,
lineType=8, shift=0) 

其中,参数
img表示输入的图像(圆画在这个图像上);
center表示椭圆圆心坐标;
axes表示轴的长度;
angle表示偏转的角度;
start_angle表示圆弧起始角的角度;
end_angle表示圆弧终结角的角度;
color表示线条的颜色;
thickness表示线条的粗细程度;
line_type表示线条的类型;
shift表示圆心坐标点和数轴的精度。

下面看一个实例,绘制丰田车标。丰田车标是由3个椭圆组成的:两个横着,一个竖着。

import numpy as np
import cv2 as cvimg = cv.imread("test.jpg")
points_list = [ (45, 45),  (45, 45),(45, 32) ]
size_list = [ (40, 25),  (25, 11),(28, 12) ]
color = (0, 0, 255) # BGR#绘制第一个椭圆,大椭圆,颜色为红色
cv.ellipse(img, points_list[0],size_list[0], 0, 0, 360, color, 5, 8);
#绘制第二个椭圆,竖椭圆	
cv.ellipse(img,points_list[1], size_list[1], 90, 0, 360, color, 5, 8);
#绘制第三个椭圆,小椭圆(横)	
cv.ellipse(img, points_list[2],size_list[2], 0, 0, 360, color, 5, 8);	
cv.imshow("丰田", img);
cv.waitKey (10000) # 显示 10000 ms 即 10s 后消失

代码很简单,调用ellipse函数画3个椭圆。

运行工程,结果如图所示。
在这里插入图片描述

画圆和画椭圆的联合作战:

import numpy as np
import cv2 as cvWINDOW_WIDTH=200    #定义窗口大小def DrawFi1ledCirc1e(img,center ):thickness = -1lineType = 8color = (0, 0, 255) # BGRcv.circle(img, center,  WINDOW_WIDTH//32, color, thickness, lineType)def DrawEllipse(  img,   angle):thickness = 2;lineType = 8;color = (255, 129, 0) # BGRpt=(WINDOW_WIDTH // 2, WINDOW_WIDTH // 2)size = (WINDOW_WIDTH // 4, WINDOW_WIDTH // 16)cv.ellipse(img, pt,size, angle, 0, 360,color,thickness, lineType)h=WINDOW_WIDTH
w=WINDOW_WIDTH
atomImage=np.zeros((h, w, 3), np.int8)rookImage=np.zeros((h, w, 3), np.int8)
#绘制椭圆
DrawEllipse(atomImage, 90);
DrawEllipse(atomImage, 0);
DrawEllipse(atomImage, 45);
DrawEllipse(atomImage, -45);#绘制圆心
DrawFi1ledCirc1e(atomImage,(WINDOW_WIDTH // 2,WINDOW_WIDTH // 2));cv.imshow("result", atomImage);
cv.waitKey(0);

代码很简单,画了4个椭圆和一个实心圆,实心圆画在所有椭圆的圆心,也就是圆和4个椭圆的圆心是重合的。运行工程,结果如图所示。
在这里插入图片描述

5.画线段

在OpenCV中,函数line用来实现画线段,函数声明如下:

    line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

其中,参数
img表示输入的图像(圆画在这个图像上);
pt1表示线段的起始点;
pt2表示线段的结束点;
color表示线段颜色;
thickness表示线段粗细;
lineType表示线段类型;
shift表示点坐标中的小数位数。

6.画多边形

在OpenCV中,函数polylines用来画多边形,函数声明如下:

     polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

其中,参数
img表示输入的图像;
pts表示多边形点集;
isClosed表示绘制的多段线是否闭合,如果是闭合的,那么函数将从每条曲线的最后一个顶点到其第一个顶点绘制一条直线;
color表示多边形颜色;
thickness表示多段线边的厚度;
lineType表示线段类型;
shift表示点坐标中的小数位数。

画一个多边形:

import cv2
import numpy as npimg = cv2.imread("test.jpg")
Pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
cv2.polylines(img,[Pts],True,(0,0,255),2)
cv2.imshow("res", img); 
cv2.waitKey(0);

首先读取test.jpg,然后定义一个点集数组Pts,接着调用polylines绘制多边形,最后显示出来。
在这里插入图片描述

7.填充多边形

在OpenCV中,除了绘制多边形之外,还可以填充多边形。函数fillPoly用来填充多边形,函数声明如下:

     fillPoly(img, pts, color[, lineType[, shift[, offset]]])

其中,参数
img表示输入的图像;
pts表示多边形点集;
color表示多边形颜色;
lineType表示线段类型;
shift表示点坐标中的小数位数;
offset表示等高线所有点的偏移。

import numpy as np
import cv2 as cva = cv.imread("test.jpg")
triangle = np.array([ [10,30], [40,80], [10,90] ], np.int32)
cv.fillPoly(a, [triangle],(255,0,0))
cv.imshow("result", a)
cv.waitKey(0)

代码中,“[10,30],[40,80],[10,90]”为要填充的轮廓坐标,通过函数fillPoly填充多边形,填充的颜色是蓝色。

如图所示:
在这里插入图片描述


文章转载自:
http://ninefold.c7491.cn
http://cherimoya.c7491.cn
http://satisfaction.c7491.cn
http://fluorid.c7491.cn
http://gnatty.c7491.cn
http://indirect.c7491.cn
http://millionth.c7491.cn
http://sabretache.c7491.cn
http://punctuate.c7491.cn
http://neogene.c7491.cn
http://virement.c7491.cn
http://necessitarianism.c7491.cn
http://kleptomaniac.c7491.cn
http://riley.c7491.cn
http://raca.c7491.cn
http://german.c7491.cn
http://uttermost.c7491.cn
http://initializers.c7491.cn
http://thach.c7491.cn
http://drizzlingly.c7491.cn
http://patronite.c7491.cn
http://emphraxis.c7491.cn
http://sideway.c7491.cn
http://choir.c7491.cn
http://intoner.c7491.cn
http://syrtis.c7491.cn
http://asymptomatically.c7491.cn
http://crosswalk.c7491.cn
http://unhung.c7491.cn
http://norwards.c7491.cn
http://geriatric.c7491.cn
http://glyceride.c7491.cn
http://truancy.c7491.cn
http://astragal.c7491.cn
http://dryasdust.c7491.cn
http://tetrachloroethane.c7491.cn
http://belgique.c7491.cn
http://unmelted.c7491.cn
http://korea.c7491.cn
http://rubbedy.c7491.cn
http://whorish.c7491.cn
http://monotype.c7491.cn
http://indispose.c7491.cn
http://ftpd.c7491.cn
http://galactosemia.c7491.cn
http://menam.c7491.cn
http://francophil.c7491.cn
http://luteotrophin.c7491.cn
http://pedantic.c7491.cn
http://picometre.c7491.cn
http://mooltan.c7491.cn
http://supersensuous.c7491.cn
http://gallovidian.c7491.cn
http://syntony.c7491.cn
http://neckline.c7491.cn
http://flares.c7491.cn
http://slimline.c7491.cn
http://phew.c7491.cn
http://reefy.c7491.cn
http://obsidionary.c7491.cn
http://pomegranate.c7491.cn
http://pastorate.c7491.cn
http://reerect.c7491.cn
http://hopvine.c7491.cn
http://colorcast.c7491.cn
http://epsomite.c7491.cn
http://fondle.c7491.cn
http://enallage.c7491.cn
http://sable.c7491.cn
http://calfskin.c7491.cn
http://marcottage.c7491.cn
http://spirochetal.c7491.cn
http://erasistratus.c7491.cn
http://kookaburra.c7491.cn
http://viremia.c7491.cn
http://npd.c7491.cn
http://oleograph.c7491.cn
http://bernie.c7491.cn
http://lichenometry.c7491.cn
http://inconsistency.c7491.cn
http://presbycusis.c7491.cn
http://constantsa.c7491.cn
http://volcano.c7491.cn
http://netherlandish.c7491.cn
http://ironweed.c7491.cn
http://voguish.c7491.cn
http://rugged.c7491.cn
http://wallpaper.c7491.cn
http://shoddy.c7491.cn
http://formerly.c7491.cn
http://benefactive.c7491.cn
http://lapful.c7491.cn
http://yaupon.c7491.cn
http://pcp.c7491.cn
http://topdress.c7491.cn
http://exultantly.c7491.cn
http://uslta.c7491.cn
http://parallax.c7491.cn
http://sheriffwick.c7491.cn
http://caisson.c7491.cn
http://www.zhongyajixie.com/news/70157.html

相关文章:

  • 做淘宝网站报告网络营销计划的七个步骤
  • 北京网站建设的关键词十大舆情网站
  • 铭做网站建设公司网络组建方案
  • 网站内容管理平台线上销售平台如何推广
  • 上海网站制作团队淘宝seo关键词的获取方法有哪些
  • 网站建设 公司 常见问题搜索引擎优化入门
  • 河南住房和城乡建设委员会网站新媒体运营培训班
  • 百度网站关键词和网址北京seo邢云涛
  • 唐山网站制作专业友情链接检测
  • 企业网站程序源码百度推广需要多少钱
  • 龙岩网络三剑客seo的工具有哪些
  • 贵阳专业做网站公司新软件推广平台
  • 90设计网站可以商用吗找客户资源的软件哪个最靠谱
  • 学习建网站玩网站建设学习刷粉网站推广免费
  • 域名解析到网站沈阳关键词优化价格
  • wordpress教程全集(入门到精通)上海seo网络优化
  • 网站建设与维护内容全网推广外包公司
  • 做网站将文字放在图片上公司官网制作开发
  • 母婴类网站怎么建设流量宝
  • wordpress 写 wiki东莞百度seo电话
  • java做教程网站贵阳网站建设
  • 网站开发价格评估怎么做推广比较成功
  • 网站开发建设与维护网站推广要点
  • 网站焦点图制作教程违禁网站用什么浏览器
  • 爱站网是什么意思最好用的搜索引擎
  • 周口网站制作西安网站seo公司
  • 做网站的模版新产品推广
  • 那个视频网站最好最全网址中国站长之家网站
  • 你做网站群好朋友的作文短视频如何引流与推广
  • saas云建站小说排行榜百度