OpenCV 將文字放置在影象上

Ammar Ali 2022年5月17日
OpenCV 將文字放置在影象上

本教程將討論在 Python 中使用 OpenCV 的 putText() 函式將文字放置在影象上。

在 Python 中使用 Opencv 的 putText() 函式將文字放置在影象上

我們可以使用 OpenCV 的 putText() 函式將文字放置在具有所需顏色、字型大小、字型系列和位置的影象上。putText() 函式的第一個引數是我們要放置文字的影象。

第二個引數是我們想要放置在影象上的文字(字串)。第三個引數是我們要放置文字的位置,預設情況下,位置原點是影象的左上角。

位置的值應使用兩個整數設定,其中第一個整數定義 x 軸位置,第二個整數定義 y 軸位置。

例如,如果我們將位置設定為 (10,20),它將把文字放置在距離原點 10 畫素和 y 軸 20 畫素的位置,原點位於影象的左上角。

第四個引數是字型系列,它可以來自 OpenCV 的預設字型系列,如 cv2.FONT_HERSHEY_SIMPLEX。第五個引數是字型大小或字型比例,它的值應該是雙精度資料型別。

第六個引數是文字的顏色,它的值應該是一個 RGB 三元組,例如 (255,255,255) 表示白色。

上述所有引數都是必需的,如果缺少一個或多個引數,則會出現錯誤。我們還可以設定三個可選引數,如果我們不設定可選引數的值,將使用預設值。

第一個可選引數是線條的粗細,預設情況下它的值應該是一個整數。第二個可選引數是線型或樣式,預設設定為 cv2.LINE_8

第三個可選引數用於將左下位置設定為原點,如果為真,則預設設定為假,它會翻轉文字。

例如,讓我們使用 numpy 庫的 zeros() 函式建立一個黑色的 512×512 影象,然後使用 putText() 函式在其上放置一些隨機文字。請參閱下面的程式碼。

import numpy as np
import cv2

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

font                   = cv2.FONT_HERSHEY_SIMPLEX
position               = (10,500)
fontScale              = 2
fontColor              = (255,255,0)

cv2.putText(img,'Hello World!',
    position,
    font,
    fontScale,
    fontColor)

cv2.imshow("img",img)
cv2.waitKey(0)

輸出:

圖片上的文字

我們在上面的示例中使用了黑色影象,但我們也可以使用 imread() 函式使用任何彩色影象。我們還可以更改可選引數的值。

例如,讓我們將線條的粗細更改為 3。對於 antialiased 線條,線條型別為 cv2.LINE_AA,讓我們使用最後一個引數翻轉文字並將其設定為 true。請參閱下面的程式碼。

import numpy as np
import cv2

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

font                   = cv2.FONT_HERSHEY_SIMPLEX
position               = (10,450)
fontScale              = 2
fontColor              = (255,255,0)

cv2.putText(img,'Hello World!',
    position,
    font,
    fontScale,
    fontColor,3,cv2.LINE_AA, True)

cv2.imshow("img",img)
cv2.waitKey(0)

輸出:

puttext 函式的可選引數

你可以在程式碼中看到我們還必須再次設定文字的位置,以便它應該可見。檢視此連結瞭解有關 OpenCV 支援的字型系列的更多詳細資訊。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - Python OpenCV

相關文章 - OpenCV Image