一、概述
cv2.puttext是OpenCV庫中的一種圖像繪製方法,它能夠在圖像上繪製文字。對於需要在圖片中加入文字的場景,cv2.puttext提供了一種比較直接方便的方式。
二、函數參數
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
上述參數分別表示:
- img:需要繪製文本的圖像;
- text:要繪製的文本內容;
- org:繪製文本的起始點;
- fontFace:字體類型,如cv2.FONT_HERSHEY_SIMPLEX、cv2.FONT_HERSHEY_PLAIN等;
- fontScale:字體大小;
- color:字體顏色;
- thickness:字體粗細,默認為1;
- lineType:線條類型,默認為cv2.LINE_AA;
- bottomLeftOrigin:坐標原點,默認為False,即左上角。
其中,org定義了文本起始位置,可以用一個元祖來表示x、y坐標,例如(10, 100)表示x=10,y=100。
三、實現過程
下面通過幾個實際的例子,來演示cv2.puttext的使用方法。
例1:在圖片中央添加文字
首先,我們創建一個黑色背景的圖片,並在其中心位置添加一段黑色的文字。
import numpy as np
import cv2
# create a black background image
img = np.zeros((512, 512, 3), np.uint8)
# add text to the image
text = "Hello, cv2.puttext!"
font = cv2.FONT_HERSHEY_SIMPLEX
org = (int(img.shape[1] / 2) - 100, int(img.shape[0] / 2))
fontScale = 1
color = (0, 0, 0)
thickness = 2
lineType = cv2.LINE_AA
cv2.putText(img, text, org, font, fontScale, color, thickness, lineType)
# show the image
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
執行上述代碼,會顯示出一張黑色背景,並在中央位置添加了黑色的文字「Hello, cv2.puttext!」。
例2:設置不同大小、顏色的字體
在很多場景中,我們需要在圖片中添加不同大小、顏色的字體。下面的例子中,我們將在圖片中央分別添加大小、顏色不同的兩段文字。
import numpy as np
import cv2
# create a white background image
img = np.zeros((512, 512, 3), np.uint8)
# add first text to the image
text1 = "Hello, cv2.puttext!"
font1 = cv2.FONT_HERSHEY_SIMPLEX
org1 = (int(img.shape[1] / 2) - 150, int(img.shape[0] / 2))
fontScale1 = 2
color1 = (255, 0, 0)
thickness1 = 2
lineType1 = cv2.LINE_AA
cv2.putText(img, text1, org1, font1, fontScale1, color1, thickness1, lineType1)
# add second text to the image
text2 = "OpenCV is amazing!"
font2 = cv2.FONT_HERSHEY_SIMPLEX
org2 = (int(img.shape[1] / 2) - 200, int(img.shape[0] / 2) + 80)
fontScale2 = 1
color2 = (0, 255, 0)
thickness2 = 2
lineType2 = cv2.LINE_AA
cv2.putText(img, text2, org2, font2, fontScale2, color2, thickness2, lineType2)
# show the image
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
執行上述代碼,會顯示出一張白色背景,並在中央位置分別添加了大小不同、顏色不同的兩段文字。
例3:繪製陰影效果
在一些場景中,我們需要給文字添加一些陰影效果,以增強文字的清晰度。下面的例子中,我們將在圖片中央添加一個帶有陰影效果的文本。
import numpy as np
import cv2
# create a white background image
img = np.zeros((512, 512, 3), np.uint8)
# add text to the image with shadow effect
text = "Hello, cv2.puttext!"
font = cv2.FONT_HERSHEY_SIMPLEX
org = (int(img.shape[1] / 2) - 150, int(img.shape[0] / 2))
fontScale = 2
color = (255, 255, 255)
thickness = 2
lineType = cv2.LINE_AA
# add shadow effect first
cv2.putText(img, text, (org[0]+2, org[1]+2), font, fontScale, (0, 0, 0), thickness, lineType)
# add text to the image
cv2.putText(img, text, org, font, fontScale, color, thickness, lineType)
# show the image
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
執行上述代碼,會顯示出一張白色背景,並在中央位置添加了一個帶有陰影效果的文本。
四、總結
我們可以看到,cv2.puttext是OpenCV庫中一個非常實用的圖像繪製方法,能夠在圖像上繪製出各種文字效果。在實際的開發工作中,我們可以利用cv2.puttext快速完成文字的添加操作,從而提高開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279797.html
微信掃一掃
支付寶掃一掃