可视化图片时显示中文标签

2023-10-31

# coding=UTF-8
import cv2
import glob
import os
from PIL import Image, ImageFont, ImageDraw
import numpy as np

# color = [(0,255,0), (255,255,0), (255,0,0)]
color = [(0,255,0), (255,255,0), (255,255,0)]

def show_name(img, boxes, labels, save_img_path, img_taskid, white_ch, white):

    sized = 100
    img_PIL = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    font = ImageFont.truetype('fzltxh_GBK.ttf', sized, encoding="utf-8")
    draw = ImageDraw.Draw(img_PIL)
    boxes = boxes.astype(np.int64)
    ch_label_all = []
    for i, box in enumerate(boxes):
        x_c, y_c, w, h = box[0], box[1], box[2], box[3]
        label = labels[i]
        if label.startswith('pl'):
            ch_label = 'pl' + str(label[2:])
        else:
            wid = white.index(label)
            ch_label = white_ch[wid].split(': ')[-1]

        if label == 't':
            c = color[2]
        else:
            c = color[1]
        draw.rectangle((x_c, y_c, x_c + w, y_c + h), outline=c, width=4)

        if ch_label not in ch_label_all:
            ch_label_all.append(ch_label)
            size_img = img.shape
            sized = sized
            lcl = len(ch_label)
            draw.text((int(size_img[1]/2)-sized*int(lcl/2), sized*(i+1)), ch_label, font=font, fill=color[0])

    im_save = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
    cv2.imwrite(os.path.join(save_img_path, img_taskid), im_save)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可视化图片时显示中文标签 的相关文章

随机推荐

  • PySide6/PyQT多线程之 高效管理多线程:暂停、恢复和停止的最佳实践

    前言 关于 PySide6 PyQT 多线程 正确地处理多线程编程并确保线程之间的同步和通信并不容易 本文以一个示例代码为基础 介绍 PySide6 PyQT多线程的运用 展示如何创建和管理线程 以及如何实现线程之间的同步和通信 设想这么一
  • python 切换root 执行命令

    如下 以创建系统用户举例 配置文件配置普通用户信息 登入后切换root用户 创建一个指定名字和密码的系统用户 def create user root pwd username password import paramiko result
  • STM32 RST管脚上拉后一直是0.1V左右的低电平,恶心,终于找到原因,焊锡膏啊

    给自己以后提醒 这次做的STM32平衡车的板子 发现仿真器一直烧写不进去 提示 core is held 先看魔术棒 排除了仿真器连接的问题 上网搜 core is held 原因 网友说应该是复位脚RST的电平没有拉高 但是我的原理图上已
  • 原码、反码、补码基本概念

    基本概念 原码 符号位加上真值的绝对值 也就是第一位表示符号 其余位表示值 0为正值 1为负值 原码是人脑最容易理解和计算的表示方式 反码 正数的反码是其本身 负数的反码是在其原码的基础上符号位不变 其余各位取反 一个反码表示的负数是无法无
  • Golang学习笔记:递归函数

    接前面java写的递归例子 还是计算一个数递减相乘 func test01 n int int result 0 if n lt 1 return 1 else result test01 n 1 n return result 执行一个函
  • IDEA个性化设置注释模板(详细版)

    IDEA设置注释模板 类注释模板 方法注释模板 效果展示 1 类注释模板 类注释模板是IDEA创建类时生成的注释 第一步 File gt Settings 第二步 Editor gt File and Code Templates gt I
  • 苹果核 - 页面动态化的基础 —— Tangram

    12月10日在SFDC SegmentFault Developer Conference 大会上初次介绍了手机天猫的Tangram方案 现场时间有限 讲得匆忙 特此整理记录 这篇内容是Tangram的整体介绍与相关业务开发实践的介绍 后续
  • 一网打尽当下NoSQL类型、适用场景及使用公司

    在过去几年 关系型数据库一直是数据持久化的唯一选择 数据工作者考虑的也只是在这些传统数据库中做筛选 比如SQL Server Oracle或者是MySQL 甚至是做一些默认的选择 比如使用 NET的一般会选择SQL Server 使用Jav
  • 图像处理:RGB与YCbCr

    简要概述一下RGB与YCbCr 方便记忆 RGB与YCbCr都是人为规定的色彩空间 同一种颜色既可以用RGB来表达 存储 也可以用YCbCr来表达 存储 就如同二进制数1111与十进制数15一样 形式不同但是表达的内容是相同的 1 RGB
  • ubuntu关机后无法进入系统

    原因 ubuntu提示内存不足后 关机扩容再次开机 黑屏卡死无法进入登录界面 解决 参考下面的博客 进入Ubuntu Linux Recovery Mode 删除一些目录 释放内存空间后 完美解决 ubuntu黑屏无法进入系统 Recove
  • 章节1 概述 - Segger SystemView使用手册(译文)

    本文博客链接 http blog csdn net bjr2016 作者 bjr2016 未经允许不得转载 1 概述 本节描述SEGGER SystemView的一般使用 1 1 SEGGER SystemView 是什么 SystemVi
  • selenium 网页自动化-在访问一个网页时弹出的浏览器窗口,我该如何处理?

    前言 相信大家在使用selenium做网页自动化时 会遇到如下这样的一个场景 在你使用get访问某一个网址时 会在页面中弹出如上图所示的弹出框 首先想到是利用Alert类来处理它 然而 很不幸 Alert类处理的结果就是没有结果 并不能够将
  • TS如何解决属性在另一个类型中不存在的问题?

    先来看一个例子 export interface Cat coatColor string 毛色 varieties string 品种 weight number 体重 meow gt void 喵喵叫 export interface
  • XSS笔记

    一 xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中 通过用户本地浏览器执行的 所以xss漏洞关键就是寻找参数未过滤的输出函数 二 XSS的攻击方式 1 反射型XSS lt 非持久化 gt 攻击者事先制作好
  • 魅蓝5s 显示无服务器,魅蓝5s评测:只为让你机不离手

    其实对于魅族来说 搞魅蓝全家桶算是一种无奈的选择 毕竟之前只能用联发科的处理器 想在高端市场发力也是拳头打在棉花上有力使不出的感觉 不过换一个角度来思考 魅族对于那块联发科处理器的打磨相对于别家来讲自然是更有经验的 所以魅族能够更加放心而大
  • 手动添加Windows右键菜单即图标 Sublime Text举例

    有时候想把软件添加到右键菜单 可以这样做 1 Window R 打开 运行 regedit 进入组侧表 2 找到HKEY CLASSES ROOT gt gt shell下 新建项命名为Sublime Text 3 即路径为HKEY CLA
  • 码猿之道

    既不是最强的 也不是最聪明的 而是最能适应变化的生存了下来 达尔文 抓紧智能时代的缰绳 2016年是计算机历史上一个具有纪念意义的年份 它是一个旧时代的终结 也是一个新时代的开始 这一年距离1956年麦卡锡 明斯基 香农等计算机先贤提出人工
  • Python基础学完了再学什么?

    Python基础学完了再学什么 基础阶段学完Python 基础语法 python 容器 函数和文件操作 面向对象 python编程和web基础 Linux 操作系统多任务编程 Python 网络编程 静态 web 服务器 HTML CSS
  • HTML实现简单的注册页面

    HTML是一种标记语言 用于创建网页 这里使用HTML创建了一个简单的注册页面 其中包含表单元素 如文本框 密码框 单选按钮 下拉列表 文件上传和文本域 先看看效果图 代码如下
  • 可视化图片时显示中文标签

    coding UTF 8 import cv2 import glob import os from PIL import Image ImageFont ImageDraw import numpy as np color 0 255 0