如何在OpenCv视频上放置度数符号(º)?

时间:2018-12-29 05:52:38

标签: python opencv plot computer-vision symbols

我制作了一个程序,可以对视频进行HUD处理,从传感器获取信息,并在视频帧上绘制结果,刷新每一帧,并表示角度(倾斜度),我需要绘制一个度数符号,但是我在视频节目中获得2个符号(“ ??”)。我也通过这个站点和其他站点进行搜索。我做不到!拜托,我不知道该怎么办,那只是我不能做的那件事。

这是我程序的开始:

import cv2
from random import *
import numpy as np
from PIL import Image

capture = cv2.VideoCapture(r"e:\Usuario\Desktop\HUD\Videos\Car.mp4")
out = cv2.VideoWriter('HUD.avi',cv2.VideoWriter_fourcc('M','P','4','2'), 25, (1280, 720))

这是我需要放置符号的行

cv2.putText(frame, (str(data[3]) + "º"), (275,690),font,0.7,(255,255,255),1)

数据是一个变量,它保存函数中的值,一切正常,只是那个符号!!! y尝试很多事情,没有人可以帮助我。

此行显示的视频仅供检查,我的程序也将其写在目录中...

out.write(frame)
cv2.imshow("Testing", frame)

我得到了python 3.5.3和Windows 10(如果该信息对您有用)。我再说一遍,这不是程序,而是我试图绘制度数符号的方式,这就是这里唯一的问题,谢谢!!!

1 个答案:

答案 0 :(得分:0)

尝试一下。但是您需要安装枕头pip install pillow

import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np

img = np.zeros((200,400,3),np.uint8)
b,g,r,a = 0,255,0,0

fontpath = "./simsun.ttc" # the font that has this "º" symbol
font = ImageFont.truetype(fontpath, 32)
img_pil = Image.fromarray(img)
draw = ImageDraw.Draw(img_pil)

draw.text((50, 80),  "100 º", font = font, fill = (b, g, r, a))

img = np.array(img_pil)

cv2.imshow("img", img)    

cv2.waitKey()
cv2.destroyAllWindows() 

enter image description here