1、ubuntu .rar文件解压
unrar e file.rar
tar.bz2
压缩tar -cjf images.tar.bz2 ./images/
tar -xjf images.tar.bz2
2、一个比较全面的字体网站
https://www.fontspace.com/category/
3、python class
class test:
def func1(self):
pass
#调用:
t = test()
t.func1()
第二种,增加__init__;实现opencv字母和贴文字功能的类
class mask_chars:
def __init__(self,chinese_,char_):
self.chinese_ = chinese_
self.chars_ = char_
#贴中文
def mask_chinese(self,img,chinese_chars):
cv2img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # cv2和PIL中颜色的hex码的储存顺序不同
pilimg = Image.fromarray(cv2img)
str1 = chinese_chars
if not isinstance(str1,unicode):
str1 = str1.decode('utf-8')
# PIL图片上打印汉字
draw = ImageDraw.Draw(pilimg) # 图片上打印
font = ImageFont.truetype("./platech.ttf", 60, encoding="utf-8") # 参数1:字体文件路径,参数2:字体大小 platechar platech
draw.text(self.chinese_, str1, (0, 0, 0), font=font) # 参数1:打印坐标,参数2:文本,参数3:字体颜色,参数4:字体
# PIL图片转cv2 图片
cv2charimg = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)
# cv2.imshow("图片", cv2charimg) # 汉字窗口标题显示乱码
return cv2charimg
#贴中文
def mask_chars(self,img,_chars):
cv2img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # cv2和PIL中颜色的hex码的储存顺序不同
pilimg = Image.fromarray(cv2img)
str1 = _chars
if not isinstance(str1,unicode):
str1 = str1.decode('utf-8')
draw = ImageDraw.Draw(pilimg) # 图片上打印
font = ImageFont.truetype("./DIN1451.ttf", 300, encoding="utf-8")
draw.text(self.chars_, str1, (0, 0, 0), font=font)
cv2charimg = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)
# cv2.imshow("图片", cv2charimg) # 汉字窗口标题显示乱码
return cv2charimg
if __name__ == "__main__":
#调用
k = mask_chars((260,10),(20 - 20,102 -30) ) #(260,10) #80 (20 - 20,102 -30) #338
img = k.mask_chinese(img,' test ')
img = k.mask_chars(img,'测试')