您的位置 首页 > 数码极客

『opencv如何画曲线』opencv绘制曲线


opencv画图


直线

• cv.line() 直线• cv.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

• pt1:起点(x,y)

• pt2:终点(x,y)


• import numpy as np• import cv2 as cv• # Create a black image• img = np.zeros((512, 512, 3), np.uint8)• cv.line(img, (255, 255), (274, 274), (240, 240, 240), 10)

• # cv.WINDOW_AUTOSIZE cv.WINDOW_NORMAL• cv.namedWindow('circle', cv.WINDOW_NORMAL)• # 显示图像• cv.imshow('circle', img)• cv.waitKey(0)• cv.destroyAllWindows()


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

• img:

• center:圆心(x,y)

• radius:半径 int


• import numpy as np• import cv2 as cv• # Create a black image• img = np.zeros((512, 512, 3), np.uint8)• cv.circle(img, (447, 63), 63, (255, 255, 255), -1)• # cv.WINDOW_AUTOSIZE cv.WINDOW_NORMAL• cv.namedWindow('circle', cv.WINDOW_NORMAL)• # 显示图像• cv.imshow('circle', img)• cv.waitKey(0)• cv.destroyAllWindows()


• 常见函数• cv.rectangle• cv.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

• pt1:对角,左上点

• pt2:对角,右下点


• import numpy as np• import cv2 as cv• # Create a black image• img = np.zeros((512, 512, 3), np.uint8)• cv.rectangle(img, ((10, 10), (40, 40)), (255, 255, 255))• # cv.WINDOW_AUTOSIZE cv.WINDOW_NORMAL• cv.namedWindow('circle')• # 显示图像• cv.imshow('circle', img)• cv.waitKey(0)• cv.destroyAllWindows()


• cv.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

• org:位置

• text:字符串内容

• fontFace


• cv.FONT_HERSHEY_SIMPLEX• normal size sans-serif font

• cv.FONT_HERSHEY_PLAIN• small size sans-serif font

• cv.FONT_HERSHEY_DUPLEX• normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX)

• cv.FONT_HERSHEY_COMPLEX• normal size serif font


• fontScale:字体缩放倍数

• bottomLeftOrigin:true:。false:反转。


• import numpy as np• import cv2 as cv• # Create a black image• img = np.zeros((512, 512, 3), np.uint8)• # cv.circle(img, (447, 63), 63, (255, 255, 255), -1)• # cv.arrowedLine(img, (0, 0), (255, 255), (255, 255, 255))• # cv.drawMarker(img, (260, 260), (255, 255, 255) )• # cv.line(img, (255, 255), (274, 274), (240, 240, 240), 10)• cv.putText( img, "opencv", (200, 200), cv.FONT_HERSHEY_PLAIN, 1, (255, 255, 255))

• # cv.WINDOW_AUTOSIZE cv.WINDOW_NORMAL• cv.namedWindow('circle')• # 显示图像• cv.imshow('circle', img)• cv.waitKey(0)• cv.destroyAllWindows()


多边形绘制

• 多边形绘制,将用到cv2.polylines()——每次调用绘制一个矩形:由一条对角线坐标组成

• 参数一:图像——你要绘制到哪个图像上,就放入哪个图象(如:img = np.zeros((512, 512, 3), np.uint8) 中的 img,这是一张图片/当然你打开摄像头是也可以放入cv2.read返回的帧图像)

• 参数二:[顶点数组]——传入一个array数组(后边单独说明如何创建!)• 参数三:是否闭合(首尾连接)——填入参数为True为首尾相连——如果是False的话就只是

一条相继连接的折线,而不是多边形• 参数四:颜色color参数——RGB,元组• 参数五:线条大小——默认为1• 参数六:lineType——线条类型——参数为:cv2.LINE_AA(抗锯齿线)----以及cv2.LINE_4和

cv2.LINE_8


• import cv2

• import numpy as np

• if __name__ == "__main__":

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

• cv2.namedWindow('imag', cv2.WINDOW_NORMAL)

• cv2.resizeWindow('imag', 520, 520)

• pts2 = np.array([[190, 340], [325, 340], [315, 370], [200, 370]], np.int32) # 顶点数组

• pts2 = ((-1, 1, 2)) # 多维数组形状

• cv2.polylines(img, [pts2], True, (0, 255, 255), 2, cv2.LINE_AA) # 用于多线绘画——布尔型参数为True时,返回多边形;否则为依次连接这些点的一条折线

• cv2.imshow('imag', img)

• cv2.waitKey(0)

• cv2.destroyAllWindows()


练习:

• 设计内容• 先用两条对角线作为背景• 接着绘制一个矩形框位于窗体中心位置附近• 再画两个实体圆位于矩形框两边(略微靠上一点会好看些)• 上面完成了之后,我们就可以使用我们的文字绘制,将我们的文字放置

在窗体中心位置左右——如果是一句话,就放在矩形下方;两句或者多句就均匀放在矩形框上下(看你自己吧,目的是熟悉参数下的图形绘制)

• 最后,我们会绘制一个多边形,将我们的文字和矩形框包围——多边形形状可以自己选择,只要好看就好了——我这里采用五边形

• 其它补充——可以联系下其它小图形的绘制,丰富图像!

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“opencv如何画曲线,opencv绘制曲线,opencv,曲线,opencv曲线拉直,opencv拟合曲线”边界阅读