效果图all: 图1:原创,代码是:all。py 图2:原创,代码是:girlall。py 备注:图2的美女图片,来自今日头条正版免费图库。 内容概述: 1具体讲解opencvpython的图形绘画:直线,圆形,三角形,,正方形和五角星。 2文字输出,暂时不讲解中文,下次有空专门讲解中文。 3相关知识,在注释中,基本上是手把手讲解,注释详细,一秒就懂。 基本知识:创建图像容器 1代码:importnumpyasnpimportcv2画板底色是黑色opencvpython创建图像容器dtypenp。uint8因为数据类型为np。uint8,也就是0255imgnp。zeros((512,512,3),np。uint8)未注明dtype,容易溢出,造成图像不显示imgnp。zeros((512,512,3))黑色背景imgnp。ones((512,512,3))白色背景cv2。imshow(1huabandise,img)cv2。waitKey() 2省略。 直线: 1代码:importnumpyasnpimportcv2黑色底色,大小512和512imgnp。zeros((512,512,3),np。uint8)黑色底板画斜直线,从坐标点0,0到512,512,蓝色,粗细5cv2。line(img,(0,0),(512,512),(255,0,0),5)水平线,左到右,红色cv2。line(img,(0,200),(512,200),(0,0,255),5)cv2。imshow(2line,img)cv2。waitKey() 2图: 三角形: 1代码:importcv2importnumpyasnpimgnp。ones((512,512,3))白色背景黑色底色,大小512和512imgnp。zeros((512,512,3),np。uint8)画三角形,三个点依次坐标ptsnp。array(〔〔50,200〕,〔450,200〕,〔250,400〕〕)polylines多边形函数cv2。polylines(img,〔pts〕,True,(255,255,0),15)cv2。imshow(3triangle,img)cv2。waitKey(0)cv2。destroyAllWindows() 2图: 正方形: 1代码:2种方法画正方形:rectangleimportnumpyasnpimportcv2黑色背景imgnp。zeros((512,512,3),np。uint8)左上角,红色cv2。rectangle(img,(0,0),(128,128),(0,0,255),3)右上角,正方形左侧上顶点和右下顶点坐标,,绿色cv2。rectangle(img,(384,0),(512,128),(0,255,0),3)左上角正方形,蓝色cv2。rectangle(img,(0,384),(128,512),(255,0,0),3)右下角正方形,蓝色cv2。rectangle(img,(384,384),(512,512),(255,255,255),3)polylines多边形画法ptsnp。array(〔〔226,226〕,〔286,226〕,〔286,286〕,〔226,286〕〕)ptspts。reshape((1,1,2))cv2。polylines(img,〔pts〕,True,(0,0,255),3)cv2。imshow(4rectangle,img)cv2。waitKey() 2图: 圆形: 1代码:importnumpyasnpimportcv2Createablackimageimgnp。zeros((512,512,3),np。uint8)r63,红色,1为实心圆cv2。circle(img,(447,63),63,(0,0,255),1)r60,绿色,1为空心圆cv2。circle(img,(256,256),60,(0,255,0),1)r80cv2。circle(img,(256,256),80,(0,255,0),1)r100cv2。circle(img,(256,256),100,(0,255,0),1)cv2。imshow(5circle,img)cv2。waitKey() 2图: 五角星: 1代码:五角星:pentagramfivepointstarimportcv2importnumpyasnpimgnp。zeros((512,512,3))黑色背景五角星,注意中括号,好几个ptsnp。array(〔〔50,190〕,〔380,420〕,〔255,50〕,〔120,420〕,〔450,190〕〕)cv2。polylines(img,〔pts〕,True,(255,255,0),15)cv2。imshow(8pentagram,img)cv2。waitKey(0)cv2。destroyAllWindows() 2图: 回到首页的两张图:原创图1和图2。 图一代码:allimportcv2importnumpyasnp备注1200为高,2000为宽imgnp。zeros((1200,2000,3))黑色背景imgnp。ones((512,512,3))白色背景,大小512和512第1个:五角星ptsnp。array(〔〔50,190〕,〔380,420〕,〔255,50〕,〔120,420〕,〔450,190〕〕)cv2。polylines(img,〔pts〕,True,(255,255,0),5)第2个,正方形:左侧上顶点和右下顶点坐标,绿色cv2。rectangle(img,(500,100),(800,400),(0,255,0),5)第3个:圆形,r200,黄色,1为空心圆cv2。circle(img,(1100,300),200,(0,255,255),5)第4个:三角形,蓝色ptsnp。array(〔〔1400,200〕,〔1850,200〕,〔1650,400〕〕)cv2。polylines(img,〔pts〕,True,(255,0,0),5)第5个:水平线,左到右,红色cv2。line(img,(0,600),(2000,600),(0,0,255),20)第6个:文字输出,暂时不支持中文textOpencvPythonfontcv2。FONTHERSHEYSIMPLEXlinetypecv2。LINEAAcv2。putText(img,text,(100,1000),font,7,(255,255,255),10,linetype)cv2。imshow(all,img)cv2。waitKey(0)cv2。destroyAllWindows() 图二: 就是使用一张彩色图片作为画布和底板,那么图片的原来大小就是决定画布大小,所以相关参数需要修改。 故意放出来,就是熟悉,加深和巩固上述图形的坐标和画法。 代码:importcv2importnumpyasnp读取图片imgcv2。imread(homexgjDesktopgraphcv2girl。jpeg,1)原图:彩色查看图片大小print(img。shape)(814,1200,3)第1个:五角星ptsnp。array(〔〔50,190〕,〔380,420〕,〔255,50〕,〔120,420〕,〔450,190〕〕)cv2。polylines(img,〔pts〕,True,(255,255,0),5)第2个,正方形:左侧上顶点和右下顶点坐标,绿色cv2。rectangle(img,(500,100),(800,400),(0,255,0),5)第3个:圆形,r200,黄色,1为空心圆cv2。circle(img,(1000,300),100,(0,255,255),5)第4个:三角形,蓝色ptsnp。array(〔〔600,500〕,〔1050,500〕,〔850,700〕〕)cv2。polylines(img,〔pts〕,True,(255,0,0),5)第5个:水平线,左到右,红色cv2。line(img,(0,750),(1200,750),(0,0,255),20)第6个:文字输出,暂时不支持中文textOpencvPythonfontcv2。FONTHERSHEYSIMPLEXlinetypecv2。LINEAAcv2。putText(img,text,(100,100),font,4,(255,255,255),10,linetype)cv2。imshow(girlall,img)cv2。waitKey(0)cv2。destroyAllWindows() 结束语: 讲解非常详细,一文就搞懂python的opencv的常见的几何图形画法和文字输出。 下次有空讲解,中文输出的方法。