關(guān)于opencv無(wú)法接收中文的問(wèn)題
'''
cv2.putText(
image, s, (x, y), cv2.FONT_HERSHEY_SIMPLEX, .5, (255, 255, 255), 1
)
'''
cv2中的putText函數(shù)無(wú)法接收中文的字符,如果打算在圖中加入中文的描述,因此為了在圖片中顯示中文,需要把opencv格式的圖轉(zhuǎn)為Image類之后再加入中文字符.
s = '這是一個(gè)圖片'
from PIL import Image,ImageDraw,ImageFont
image = cv2.imread('example.jpg')
cv2img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # cv2和PIL中顏色的hex碼的儲(chǔ)存順序不同
pilimg = Image.fromarray(cv2img)
draw = ImageDraw.Draw(pilimg)
font = ImageFont.truetype("SimSun.ttf", 35, encoding="utf-8")
draw.text((x, y), s, (255, 255, 255), font=font)
image = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)
這里使用Image的text的函數(shù)進(jìn)行文本描述,ImageFont中第一個(gè)是使用的中文字體類型所在的路徑,需要下載,后面是字號(hào)以及編碼方式.
text函數(shù)中參數(shù)第一個(gè)是字的坐標(biāo),第二是加入的字符,第三個(gè)是字體的顏色,第四個(gè)是使用的字體,就是上面的ImageFont定義的字體字號(hào).