纯原创,略带点科技艺术气息的目标检测框

简介: 纯原创,略带点科技艺术气息的目标检测框

🔱前言


       如果说作为一名程序员,我要求我自己要不断的求证,那么同时作为一名热爱艺术的人,我则无法忍受主流的那种“丑陋”目标检测框(下图),所以这篇文章也就应用而生了。


1dc618a0ed9580ce8bfa6facb208c08f.png


🔱检测框展览


1dc618a0ed9580ce8bfa6facb208c08f.png



5d4c6812c8535adbb050f4ddf2e1bce8.png

46a9d80a6e05e4e3b19d57a0ee70bcdf.png


🔱在实际应用中效果的展览


📍Face


b001cd2dd849a60e17405f7ed5f145b8.jpeg


📍Body


66ba272a0bfc97be54a5fa679e3d5482.png


🔱Code柜


📍magic_bbox.py


# -*- coding: UTF-8 -*-
"""
@Time    : 2022-9-15
@Author  : 江子良
@Email   : 2642898145@qq.com
"""
import cv2
import numpy as np
class Magic_Bbox(object):
    def __init__(self, color=(255, 255, 0), threasould=25):
        self.color = color
        self.threasould = threasould
        self.out_img = np.array([])
    def draw(self, old_image, b, draw_type):
        if draw_type == '0':
            cv2.rectangle(old_image, (b[0], b[1]), (b[2], b[3]), self.color, 1)
            b0_, b1_, b2_, b3_ = self.threasould, self.threasould, self.threasould, self.threasould
            # 左上
            cv2.line(old_image, (b[0], b[1]), (b[0], b[1] + b1_), self.color, 4, 4)
            cv2.line(old_image, (b[0], b[1]), (b[0] + b0_, b[1]), self.color, 4, 4)
            # 右下
            cv2.line(old_image, (b[2], b[3]), (b[2], b[3] - b3_), self.color, 4, 4)
            cv2.line(old_image, (b[2], b[3]), (b[2] - b2_, b[3]), self.color, 4, 4)
            # 左下
            cv2.line(old_image, (b[0], b[3]), (b[0], b[3] - b3_), self.color, 4, 4)
            cv2.line(old_image, (b[0], b[3]), (b[0] + b0_, b[3]), self.color, 4, 4)
            # 右上
            cv2.line(old_image, (b[2], b[1]), (b[2], b[1] + b1_), self.color, 4, 4)
            cv2.line(old_image, (b[2], b[1]), (b[2] - b2_, b[1]), self.color, 4, 4)
        elif draw_type == '1':
            cv2.rectangle(old_image, (b[0], b[1]), (b[2], b[3]), self.color, 1)
            b0_, b1_, b2_, b3_ = 25, 25, 25, 25
            temp = 10
            # 左上
            cv2.line(old_image, (b[0] - temp, b[1] - temp), (b[0], b[1] + b1_), self.color, 4, 4)
            cv2.line(old_image, (b[0] - temp, b[1] - temp), (b[0] + b0_, b[1]), self.color, 4, 4)
            # 右下
            cv2.line(old_image, (b[2] + temp, b[3] + temp), (b[2], b[3] - b3_), self.color, 4, 4)
            cv2.line(old_image, (b[2] + temp, b[3] + temp), (b[2] - b2_, b[3]), self.color, 4, 4)
            # 左下
            cv2.line(old_image, (b[0] - temp, b[3] + temp), (b[0], b[3] - b3_), self.color, 4, 4)
            cv2.line(old_image, (b[0] - temp, b[3] + temp), (b[0] + b0_, b[3]), self.color, 4, 4)
            # 右上
            cv2.line(old_image, (b[2] + temp, b[1] - temp), (b[2], b[1] + b1_), self.color, 4, 4)
            cv2.line(old_image, (b[2] + temp, b[1] - temp), (b[2] - b2_, b[1]), self.color, 4, 4)
        elif draw_type == '2':
            cv2.rectangle(old_image, (b[0], b[1]), (b[2], b[3]), self.color, 1)
            b0_, b1_, b2_, b3_ = 25, 25, 25, 25
            temp = 10
            # 左上
            cv2.line(old_image, (b[0] - temp, b[1] - temp), (b[0] - temp, b[1] + b1_ - temp), self.color, 4, 4)
            cv2.line(old_image, (b[0] - temp, b[1] - temp), (b[0] - temp + b0_, b[1] - temp), self.color, 4, 4)
            # 右下
            cv2.line(old_image, (b[2] + temp, b[3] + temp), (b[2] + temp, b[3] - b3_ + temp), self.color, 4, 4)
            cv2.line(old_image, (b[2] + temp, b[3] + temp), (b[2] + temp - b2_, b[3] + temp), self.color, 4, 4)
            # 左下
            cv2.line(old_image, (b[0] - temp, b[3] + temp), (b[0] - temp, b[3] - b3_ + temp), self.color, 4, 4)
            cv2.line(old_image, (b[0] - temp, b[3] + temp), (b[0] - temp + b0_, b[3] + temp), self.color, 4, 4)
            # 右上
            cv2.line(old_image, (b[2] + temp, b[1] - temp), (b[2] + temp, b[1] + b1_ - temp), self.color, 4, 4)
            cv2.line(old_image, (b[2] + temp, b[1] - temp), (b[2] + temp - b2_, b[1] - temp), self.color, 4, 4)
        return old_image
    def show(self, img):
        cv2.imshow('fame', img)
        cv2.waitKey(0)


📍demo.py


@Time    : 2022-9-15
@Author  : 江子良
@Email   : 2642898145@qq.com
@param: img | 这个参数是要传入准备被作画的图片
@param:bbox| 这个参数是要传入准备作画的目标框位置 格式:(xmin,ymin,xmax,ymax)
@pararm:type| 这个参数是一一对应上面3种不同的目标检测框
@pararm:color| 请根据RGB表自行设置哦!
"""

RGB颜色对照表戳这里~

http://t.csdn.cn/9z0SF

How to use?


from magic_bbox import Magic_Bbox
import numpy as np
import cv2
if __name__ == "__main__":
    img = np.zeros((320, 320, 3), np.uint8)  # 生成一个空灰度图像
    bbox = (60, 60, 260, 260)
    color = (255,255,0)
    '''
    type: 0 | 1 | 2
    '''
    mb = Magic_Bbox(color=color)
    img = mb.draw(img, bbox, '1')
    mb.show(img)

完毕!


如果大家觉得有用的话,欢迎三连喔~


相关文章
|
8月前
|
机器学习/深度学习 编解码 人工智能
麻省理工AI新研究可将马赛克变视频
【2月更文挑战第30天】麻省理工学院等机构的研究团队推出AI新技术FeatUp,可将低分辨率图像提升为高清视频,该技术在2024年ICLR会议上引起关注。FeatUp基于深度特征提取,通过多视角一致性损失恢复空间信息,提高视频清晰度。模型通用性强,适用于多种任务和现有应用。实验显示,它在图像超分辨率和端到端学习模型性能提升上超越其他方法。然而,尚存在对某些内容处理不完善和计算资源需求高的局限性。
125 2
麻省理工AI新研究可将马赛克变视频
|
3月前
|
人工智能 自然语言处理 搜索推荐
超越边界:探索2023年AIGC技术盛宴,预测前沿科技的奇迹 🚀
本文探讨了互联网内容生产从PGC、UGC到AIGC的演变,特别关注了AIGC(人工智能生成内容)的发展及其对未来内容生产的深远影响。文章详细介绍了AIGC的定义、技术进展(如生成算法、多模态技术、AI芯片等),并展示了AIGC在多个领域的广泛应用,如代码生成、智能编程、个性化服务等。未来,AIGC将在各行各业创造巨大价值,推动社会进入更加智能化的时代。同时,文章也探讨了AIGC对开发者的影响,以及其可能无法完全取代人类的原因,强调开发者可以利用AIGC提升工作效率。
56 0
|
4月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
机器学习/深度学习 算法 计算机视觉
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 14 日论文合集)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 14 日论文合集)
|
机器学习/深度学习 算法 数据挖掘
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 11 日论文合集)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 11 日论文合集)
|
机器学习/深度学习 传感器 算法
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 9 日论文合集)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 9 日论文合集)
|
机器学习/深度学习 编解码 自动驾驶
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 7 日论文合集)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 7 日论文合集)
|
机器学习/深度学习 传感器 测试技术
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 10 日论文合集)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 10 日论文合集)
|
机器学习/深度学习 人工智能 算法
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 8 日论文合集)(二)(上)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 8 日论文合集)(二)(上)
|
机器学习/深度学习 安全 自动驾驶
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 8 日论文合集)(二)(下)
【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 8 日论文合集)(二)(下)