我制作了一个程序,可以对视频进行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(如果该信息对您有用)。我再说一遍,这不是程序,而是我试图绘制度数符号的方式,这就是这里唯一的问题,谢谢!!!
答案 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()