OpenCV Python - 繪製形狀和文字



在本章中,我們將學習如何使用 OpenCV-Python 在影像上繪製形狀和文字。讓我們首先了解如何在影像上繪製形狀。

在影像上繪製形狀

我們需要了解 OpenCV-Python 中必要的函式,這些函式可以幫助我們在影像上繪製形狀。

函式

OpenCV-Python 包(稱為 cv2)包含以下函式來繪製相應的形狀。

函式 描述 命令
cv2.line() 繪製連線兩點的線段。 cv2.line(img, pt1, pt2, color, thickness)
cv2.circle() 在給定點為中心的影像上繪製給定半徑的圓。 cv2.circle(img, center, radius, color, thickness)
cv2.rectangle 繪製以給定點為左上角和右下角的矩形。 cv2.rectangle(img, pt1, pt2, color, thickness)
cv2.ellipse() 繪製簡單的或粗的橢圓弧或填充橢圓扇形。 cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness)

引數

上述函式的常用引數如下:

序號 函式及描述
1

img

要在其中繪製形狀的影像。

2

color

形狀的顏色。對於 BGR,將其作為元組傳遞。對於灰度影像,只需傳遞標量值。

3

thickness

線條或圓等的粗細。如果對於封閉圖形(如圓形)傳遞 -1,則將填充該形狀。

4

lineType

線條型別,無論是 8 連通、抗鋸齒線等。

示例

以下示例顯示如何在影像頂部繪製形狀。相應的程式如下所示:

import numpy as np
import cv2
img = cv2.imread('LENA.JPG',1)
cv2.line(img,(20,400),(400,20),(255,255,255),3)
cv2.rectangle(img,(200,100),(400,400),(0,255,0),5)
cv2.circle(img,(80,80), 55, (255,255,0), -1)
cv2.ellipse(img, (300,425), (80, 20), 5, 0, 360, (0,0,255), -1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出

Draw Shapes

繪製文字

cv2.putText() 函式用於在影像上寫入文字。相應的命令如下:

img, text, org, fontFace, fontScale, color, thickness)

字型

OpenCV 支援以下字型:

字型名稱 字型大小
FONT_HERSHEY_SIMPLEX 0
FONT_HERSHEY_PLAIN 1
FONT_HERSHEY_DUPLEX 2
FONT_HERSHEY_COMPLEX 3
FONT_HERSHEY_TRIPLEX 4
FONT_HERSHEY_COMPLEX_SMALL 5
FONT_HERSHEY_SCRIPT_SIMPLEX 6
FONT_HERSHEY_SCRIPT_COMPLEX 7
FONT_ITALIC 16

示例

以下程式在著名足球運動員萊昂內爾·梅西的照片上添加了一個文字標題。

import numpy as np
import cv2
img = cv2.imread('messi.JPG',1)
txt="Lionel Messi"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,txt,(10,100), font, 2,(255,255,255),2,cv2.LINE_AA)

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出

Draw Text
廣告

© . All rights reserved.