DigiHouse
繁體中文

TECH ARTICLE · NCU · 3 MIN READ

Blog / NCU

第 20 課|使用 OpenCV 測試不同字體樣式

使用 OpenCV 測試不同字體樣式。本文已重新整理為適合 DigiHouse 閱讀的課程文章,並保留原始 PIXNET 刊載網址。

使用 OpenCV 測試不同字體樣式的 Python 程式解析

以下程式展示了如何在白色畫布上使用 OpenCV 的多種字體樣式來繪製文字。

程式碼範例與註解

text
# 匯入必要模組
import numpy as np
import cv2

# 建立 512x512 的黑色畫布
gc = np.zeros((512, 512, 3), np.uint8)
# 用 (B, G, R) = (255, 255, 255): 白色填滿畫布
gc.fill(255)

# 定義多種字體樣式
font = [
    cv2.FONT_HERSHEY_SIMPLEX,
    cv2.FONT_HERSHEY_PLAIN,
    cv2.FONT_HERSHEY_DUPLEX,
    cv2.FONT_HERSHEY_COMPLEX,
    cv2.FONT_HERSHEY_TRIPLEX,
    cv2.FONT_HERSHEY_COMPLEX_SMALL,
    cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,
    cv2.FONT_HERSHEY_SCRIPT_COMPLEX
]

# 在畫布上依次繪製每種字體
y = 50
for f in font:
    cv2.putText(gc, 'OpenCV', (10, y), f, 2, (0, 0, 0), 2, cv2.LINE_AA)
    y += 60

# 顯示畫布
cv2.imshow("draw", gc)
cv2.waitKey(0)
cv2.destroyAllWindows()

程式解析

• 建立畫布: 使用 np.zeros 建立一個 512x512 的黑色畫布,並使用 fill(255) 將其填滿為白色。

• 定義字體列表: 定義了一組 OpenCV 支援的字體樣式,列表中包括了多種字體,如 FONT_HERSHEY_SIMPLEX 和 FONT_HERSHEY_SCRIPT_COMPLEX。

• 繪製文字: 使用 cv2.putText 在畫布的不同位置繪製文字 'OpenCV'。文字的字體由字體列表決定,位置隨迴圈逐步遞增。

• 顯示畫布: 使用 cv2.imshow 顯示畫布,按下任意鍵後關閉視窗。

結論

此程式展示了 OpenCV 支援的多種字體樣式,並在畫布上依次顯示它們的效果。用戶可以基於此程式更改字體大小、顏色或測試不同的樣式,進一步熟悉 cv2.putText 的功能。

劉老師的跨域創想工坊

本文亦刊載於 PIXNET

https://liusming.pixnet.net/blog/posts/14222886399