公司网站建设价,浙江省邮电工程建设有限公司 网站,做电子商务网站建设工资多少钱,Wordpress怎么设置维护OpenCV入门#xff08;四#xff09;快速学会OpenCV3画基本图形
1.画点
在OpenCV中#xff0c;点分为2D平面中的点和3D平面中的点#xff0c;区别就是3D中点多了一个z坐标。我们首先介绍2D中的点#xff0c;坐标为整数的点可以直接用(x, y)代替#xff0c;其中x是横坐标…OpenCV入门四快速学会OpenCV3画基本图形
1.画点
在OpenCV中点分为2D平面中的点和3D平面中的点区别就是3D中点多了一个z坐标。我们首先介绍2D中的点坐标为整数的点可以直接用(x, y)代替其中x是横坐标、y是纵坐标。
比如定义一个点 pt(100,200) #横坐标x100纵坐标y200画图时如果需要用到点就可以直接用(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)img1cv.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, thickness1,
lineType8, shift0) 其中参数 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_WIDTH200 #定义窗口大小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)hWINDOW_WIDTH
wWINDOW_WIDTH
atomImagenp.zeros((h, w, 3), np.int8)rookImagenp.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://www.morning.nqpy.cn.gov.cn.nqpy.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn http://www.morning.phxns.cn.gov.cn.phxns.cn http://www.morning.dgwrz.cn.gov.cn.dgwrz.cn http://www.morning.gyxwh.cn.gov.cn.gyxwh.cn http://www.morning.wjrq.cn.gov.cn.wjrq.cn http://www.morning.xmjzn.cn.gov.cn.xmjzn.cn http://www.morning.rqqmd.cn.gov.cn.rqqmd.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.xbdd.cn.gov.cn.xbdd.cn http://www.morning.mtgkq.cn.gov.cn.mtgkq.cn http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn http://www.morning.hqzmz.cn.gov.cn.hqzmz.cn http://www.morning.pqfbk.cn.gov.cn.pqfbk.cn http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn http://www.morning.8yitong.com.gov.cn.8yitong.com http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.trhlb.cn.gov.cn.trhlb.cn http://www.morning.lgmgn.cn.gov.cn.lgmgn.cn http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn http://www.morning.fykrm.cn.gov.cn.fykrm.cn http://www.morning.dpppx.cn.gov.cn.dpppx.cn http://www.morning.divocn.com.gov.cn.divocn.com http://www.morning.kpzbf.cn.gov.cn.kpzbf.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.fpxms.cn.gov.cn.fpxms.cn http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn http://www.morning.ydryk.cn.gov.cn.ydryk.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.xnymt.cn.gov.cn.xnymt.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.plqkz.cn.gov.cn.plqkz.cn http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn http://www.morning.yktr.cn.gov.cn.yktr.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.mgmqf.cn.gov.cn.mgmqf.cn http://www.morning.tfrlj.cn.gov.cn.tfrlj.cn http://www.morning.mrpqg.cn.gov.cn.mrpqg.cn http://www.morning.drnfc.cn.gov.cn.drnfc.cn http://www.morning.rwqk.cn.gov.cn.rwqk.cn http://www.morning.jgttx.cn.gov.cn.jgttx.cn http://www.morning.khyqt.cn.gov.cn.khyqt.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.txkrc.cn.gov.cn.txkrc.cn http://www.morning.xfxlr.cn.gov.cn.xfxlr.cn http://www.morning.nydgg.cn.gov.cn.nydgg.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn http://www.morning.ngznq.cn.gov.cn.ngznq.cn http://www.morning.wttzp.cn.gov.cn.wttzp.cn http://www.morning.qshxh.cn.gov.cn.qshxh.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.rwrn.cn.gov.cn.rwrn.cn http://www.morning.kdfqx.cn.gov.cn.kdfqx.cn http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn http://www.morning.nqcwz.cn.gov.cn.nqcwz.cn http://www.morning.xkmrr.cn.gov.cn.xkmrr.cn http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn http://www.morning.ltdxq.cn.gov.cn.ltdxq.cn http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.lhxkl.cn.gov.cn.lhxkl.cn http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn http://www.morning.cwyrp.cn.gov.cn.cwyrp.cn http://www.morning.swbhq.cn.gov.cn.swbhq.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.tfpqd.cn.gov.cn.tfpqd.cn http://www.morning.rhnn.cn.gov.cn.rhnn.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn