Python-OpenCV 中的绘图函数
Posted 司砚章
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-OpenCV 中的绘图函数相关的知识,希望对你有一定的参考价值。
OpenCV 中的绘图函数
学习使用 OpenCV 绘制不同几何图形
你将会学习到这些函数:cv2.line(),cv2.circle(),cv2.rectangle(), cv2.ellipse(),cv2.putText() 等。
代码
上面所有的这些绘图函数需要设置下面这些参数:
• img:你想要绘制图形的那幅图像。
• color:形状的颜色。以RGB为例,需要传入一个元组,例如: (255,0,0) 代表蓝色。对于灰度图只需要传入灰度值。
• thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形 就会被填充。默认值是 1.
• linetype:线条的类型, 8连接,抗锯齿等。默认情况是8连接。cv2.LINE_AA 为抗锯齿,这样看起来会非常平滑。
画线
要画一条线,你只需要告诉函数这条线的起点和终点。我们下面会画一条 从左上方到右下角的蓝色线段。
import cv2
import numpy as np
# Create a black image
img=np.zeros((512,512,3),np.uint8)
# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,156,25),5)
cv2.imshow(\'image\',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
画矩形
要画一个矩形,你需要告诉函数的左上角顶点和右下角顶点的坐标。这次 我们会在图像的右上角话一个绿色的矩形。
import cv2
import numpy as np
# Create a black image
img=np.zeros((512,512,3),np.uint8)
cv2.rectangle(img,(184,30),(310,128),(0,255,0),3)
cv2.imshow(\'image\',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
画圆
要画圆的话,只需要指定圆形的中心点坐标和半径大小。我们在上面的矩 形中画一个圆。
import cv2
import numpy as np
# Create a black image
img=np.zeros((512,512,3),np.uint8)
cv2.circle(img,(184,200),63,(0,0,255),-1)
cv2.imshow(\'image\',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
画椭圆
画椭圆比较复杂,我们要多输入几个参数。一个参数是中心点的位置坐标。 下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧沿顺时针方向起始的角度和结束角度,如果是 0 和 360,就是整个椭圆。查看 cv2.ellipse() 可以得到更多信息。下面的例子是在图片的中心绘制半个椭圆。
import cv2
import numpy as np
# Create a black image
img=np.zeros((512,512,3),np.uint8)
cv2.ellipse(img,(256,256),(100,50),0,0,180,(130,214,183),-1)
cv2.imshow(\'image\',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在图片上添加文字
要在图片上绘制文字,你需要设置下列参数:
• 你要绘制的文字
• 你要绘制的位置
• 字体类型(通过查看 cv2.putText() 的文档找到支持的字体)
• 字体的大小
• 文字的一般属性如颜色,粗细,线条的类型等。为了更好看一点推荐使用 linetype=cv2.LINE_AA。
在图像上绘制白色的 OpenCV
import cv2
import numpy as np
# Create a black image
img=np.zeros((512,512,3),np.uint8)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,\'OpenCV\',(10,450),font,4,(255,255,255),cv2.LINE_AA)
cv2.imshow(\'image\',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上是关于Python-OpenCV 中的绘图函数的主要内容,如果未能解决你的问题,请参考以下文章
Python-OpenCV下的窗口鼠标事件交互操作(实现鼠标移动轨迹的绘制)
如何在 PyQt 的 QGraphicsViews 中使用自定义绘图?
2021-10-30 vscode+Xming+树莓派使用python-opencv的imshow()函数时显现图像为灰色问题