一、概述
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