参考链接: PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=’’, layout_engine=None)
参考链接: ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=4, align=‘left’, direction=None, features=None, language=None, stroke_width=0, stroke_fill=None, embedded_color=False)
参考链接: ImageDraw.rectangle(xy, fill=None, outline=None, width=1)
参考链接: ImageDraw.textsize(text, font=None, spacing=4, direction=None, features=None, language=None, stroke_width=0)

实验代码展示:


from PIL import Image,ImageFont, ImageDraw
import numpy as np
import colorsys
image = Image.open("bryant.jpg")
class_names = \["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]hsv_tuples = [(x / len(class_names), 1., 1.)for x in range(len(class_names))
]  # 获得hsv格式的不同色度colors = list(map(lambda x: colorsys.hsv_to_rgb(*x), hsv_tuples)
)  # 获得rgb格式的不同颜色colors = list(map(lambda x: (int(x[0] * 255), int(x[1] * 255), int(x[2] * 255)),colors)
)  # 通过hsv格式来调整不同类别对应边框的色度font = ImageFont.truetype(font='simhei.ttf',size=np.floor(3e-2 * 1000 + 0.5).astype('int32')
)  # 获得字体# label = '{} {:.2f}'.format('linmazi', 0.982)
label = '{} {:.2f}'.format('林麻子', 0.982)draw = ImageDraw.Draw(image)
label_size = draw.textsize(label, font)
print('label_size:',label_size)  # label_size: (165, 29)
label = label.encode('utf-8')
# print(label)for i in range(8):  # 将矩形框画得更粗一些draw.rectangle([100+i, 150+i, 300-i, 600-i],outline=colors[class_names.index('car')])draw.rectangle([400, 350, 500, 600],outline=colors[class_names.index('tvmonitor')],width=8
)draw.rectangle([600, 350, 750, 600],outline=colors[class_names.index('motorbike')],width=8,fill=colors[class_names.index('diningtable')]  # 用于填充
)# draw.text([600, 350], str(label,'UTF-8'), fill=(0, 0, 0), font=font)
draw.text([600, 50], label.decode(), fill=(255, 0, 0), font=font)image.show()

控制台输出结果:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。尝试新的跨平台 PowerShell https://aka.ms/pscore6加载个人及系统配置文件用了 1017 毫秒。
(base) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq\news> conda activate ssd4pytorch1_2_0
(ssd4pytorch1_2_0) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq\news>  & 'D:\Anaconda3\envs\ssd4pytorch1_2_0\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.12.424452561\pythonFiles\lib\python\debugpy\launcher' '53058' '--' 'c:\Users\chenxuqi\Desktop\News4cxq\test4cxq\news\test15.py'
label_size: (165, 29)
(ssd4pytorch1_2_0) PS C:\Users\chenxuqi\Desktop\News4cxq\test4cxq\news>

运行结果截图:

程序原图:

源代码及相关文件下载地址链接: 【2020年最后一天致敬科比】PIL库用于目标检测.zip

【2020年最后一天致敬科比】PIL库用于目标检测相关推荐

  1. MatrixNets:可替代FPN,用于目标检测的可感知比例和长宽比的网络结构

    译者 | 刘畅 出品 | AI科技大本营(ID:rgznai100) 本文介绍了一种新的网络MatrixNets(xNets),它是新的用于目标检测的深层结构.xNets将具有相似大小和高宽比的目标映 ...

  2. Mask R-CNN用于目标检测和分割代码实现

    Mask R-CNN用于目标检测和分割代码实现 Mask R-CNN for object detection and instance segmentation on Keras and Tenso ...

  3. 何恺明大神新作:一种用于目标检测的主流ViT架构,效果SOTA

    链接:https://arxiv.org/abs/2203.16527 作者单位:Facebook AI Research 1导读 3月30日,何恺明大神团队在ArXiv上发布了最新研究工作,该工作主 ...

  4. maskrcnn用于目标检测_用于目标检测的池化渐进网络(Pooling Pyramid Network)

    用于目标检测的池化渐进网络(Pooling Pyramid Network) 题目: Pooling Pyramid Network for Object Detection 作者: Pengchon ...

  5. 【论文解读】CVPR 2021 | 旷视提出GID:用于目标检测的通用实例蒸馏

    本文提出一种用于目标检测的知识蒸馏新方法:General Instance Distillation,GID,可应用于各种检测框架中,使得学生模型显著提高AP的性能,甚至优于Teacher模型! 作者 ...

  6. python解析xml+得到pascal voc xml格式用于目标检测+美化xml

    1.python解析xml img_path='./data/001.tif'xml_path='./xml/001.xml'img=cv2.imread(img_path)# cv2.imshow( ...

  7. MoCo不适用于目标检测?MSRA提出对象级对比学习的目标检测预训练方法SoCo!性能SOTA!(NeurIPS 2021)...

    关注公众号,发现CV技术之美 本文分享 NeurIPS 2021 论文『Aligning Pretraining for Detection via Object-Level Contrastive ...

  8. DyFPN:浙大华为诺亚西湖大学等提出用于目标检测的动态特征金字塔,减少40%的FLOPs!...

    关注公众号,发现CV技术之美 ▊ 写在前面 特征金字塔网络(FPN)是目标检测框架的重要组成部分.大多数现有FPN变体的性能提高主要归因于计算负担的增加.增强FPN的一种方法是通过扩展感受野来丰富空间 ...

  9. 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU

    摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...

最新文章

  1. mysql相关操作(一)
  2. log4j的使用 与 父接口 slf4j 门面模式(外观模式)
  3. Coursera课程Python for everyone:Quiz: Many-to-Many Relationships and Python
  4. nyoj123士兵杀敌4-树状数组-改区间查点
  5. python输入input数组_Python学习——实现简单的交互raw_input的使用
  6. 堆积柱形图显示总数_送你一份堆积柱形图小点心,请收下~
  7. getconnection java_在MyEclipse用java写的一个GetConnection1.java,用于连接MySQL,却总是出错。(没有财富值了,见谅!)...
  8. 关于Excel中的F2键(知道了,会对Excel的操作非常方便)。
  9. MySQL数据库设置主从同步
  10. PHP程序的常见漏洞攻击分析
  11. @ab测试工具使用详解
  12. bugku秋名山老司机之使用requsets解题
  13. 真的有必要定义VO,BO,PO,DO,DTO吗?
  14. [c++]c++程序设计-Y.Daniel.Liang 笔记
  15. altiumDesigner中文改成英文操作过程。
  16. 学生上课签到系统开发总结
  17. python SQL语句 占位符
  18. MySQL中sum和count用法总结
  19. 网络技术基础测试(一)
  20. Common Lisp Style Guide - Ariel Networks Labs

热门文章

  1. ModaHub魔搭社区:基于阿里云 ACK 搭建开源向量数据库 Milvus
  2. 1182_SPC560B60L7_ADC的CTU触发功能简介
  3. 下拉框dropdown
  4. 店宝宝:9.9致富经
  5. 华清远见-重庆中心-JAVA面向对象阶段技术总结
  6. 文件服务器和nas存储,nas存储 文件服务器
  7. C语言中结构体标签的使用
  8. OpenCV开运算(Opening)闭运算(Closing)形态梯度(Gradient)TopHat、BlackHat
  9. Flutter 精品项目之基于SQLite本地数据的日常支出手帐App(教程含源码)
  10. 使用妹子UI开发的体验分享