美文网首页
opencv-python:在图片上写入文字

opencv-python:在图片上写入文字

作者: 我的小小笔尖 | 来源:发表于2021-12-10 08:25 被阅读0次

    方式1:cv.putText(不支持中文)

    #coding=utf-8
    
    import cv2 as cv
    
    # 当前目录读取一张图片
    img = cv.imread('chloe.jpg')
    
    # 在图片上添加文字(该方法添加的中文会变为???)
    # 参数:图像,文字内容, 坐标 ,字体,大小,颜色,字体厚度
    cv.putText(img, 'Chloe 克洛伊', (100, 100), cv.FONT_HERSHEY_COMPLEX, 2.0, (100, 200, 200), 5)
    
    # 保存图片到当前目录
    cv.imwrite('temp/chloe.jpg', img)
    
    # 显示图片
    cv.imshow("show Chloe", img)
    cv.waitKey(0)
    

    原图

    chloe.jpg

    写入文字后的图片(汉字变为???)

    chloe.jpg

    方式2:使用PIL(支持中文)

    #coding=utf-8
    
    import cv2 as cv
    import numpy as np
    from PIL import Image, ImageDraw, ImageFont
    
    # 当前目录读取一张图片
    img = cv.imread('chloe.jpg')
    
    # 图片转换(cv2 -> pil)
    cv2img = cv.cvtColor(img, cv.COLOR_BGR2RGB)
    pilimg = Image.fromarray(cv2img)
    
    # 在图片上添加文字(支持中文)
    draw = ImageDraw.Draw(pilimg)
    font = ImageFont.truetype("simhei.ttf", 50, encoding="utf-8")
    draw.text((100, 25), "Chloe 克洛伊", (255, 255, 255), font=font)
    
    # 图片转换(pil -> cv2)
    cv2img2 = cv.cvtColor(np.array(pilimg), cv.COLOR_RGB2BGR)
    
    # 保存图片到当前目录
    cv.imwrite('temp/chloe2.jpg', cv2img2)
    
    # 显示图片
    cv.imshow("show Chloe2", cv2img2)
    cv.waitKey(0)
    

    原图

    chloe2.jpg

    添加文字后的图片(支持添加汉字)

    chloe2.jpg

    truytype 字体下载网址:https://fontsnetwork.com/category/truetype/
    如果字体下载安装后无法使用,可以将字体文件拷贝到python程序所在目录直接使用

    相关文章

      网友评论

          本文标题:opencv-python:在图片上写入文字

          本文链接:https://www.haomeiwen.com/subject/xbcffrtx.html