目标检测 获得的boundingbox 绘制并且保存

2023-11-17

可能我是读了一个假的研究生,这么简单的弄了3个小时,本来打算用现成的 可是一直保存不了,后面没办法自己写了一个。

其中 VOC_BBOX_LABEL_NAMES是list数组 保存对应的标签名,如果类别多的话可以用循环来写(我写在第二个代码上),颜色全部固定一致的,我第一种写法颜色是不一致的。

        pred_bboxes_, pred_labels_, pred_scores_ = faster_rcnn.predict(imgs, [
                                                                       sizes])

        image = cv2.imread(
            '/media/chenli/F1/cell_data/BCCD_Dataset/BCCD/' + 'JPEGImages/' + str(id_[0]) + '.jpg')
        bboxs = at.tonumpy(pred_bboxes_[0])
        name = at.tonumpy(pred_labels_[0]).reshape(-1)
        score = at.tonumpy(pred_scores_[0]).reshape(-1)

        for i in range(len(name)):
            xmin = int(round(float(bboxs[i, 1])))
            ymin = int(round(float(bboxs[i, 0])))
            xmax = int(round(float(bboxs[i, 3])))
            ymax = int(round(float(bboxs[i, 2])))
            if name[i] == 0:
                cv2.rectangle(image, (xmin, ymin),
                              (xmax, ymax), (0, 255, 0), 1)
                cv2.putText(image, VOC_BBOX_LABEL_NAMES[0], (xmin, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 255, 0), 1)
                cv2.putText(image, str(score[i])[0:3], (xmin + 30, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 255, 0), 1)
            if name[i] == 1:
                cv2.rectangle(image, (xmin, ymin),
                              (xmax, ymax), (0, 0, 255), 1)
                cv2.putText(image, VOC_BBOX_LABEL_NAMES[1], (xmin, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 0, 255), 1)
                cv2.putText(image, str(score[i])[0:3], (xmin + 30, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 0, 255), 1)
            if name[i] == 2:
                cv2.rectangle(image, (xmin, ymin),
                              (xmax, ymax), (0, 0, 255), 1)
                cv2.putText(image, VOC_BBOX_LABEL_NAMES[2], (xmin, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 0, 255), 1)
                cv2.putText(image, str(score[i])[0:3], (xmin + 30, ymin - 10),
                            cv2.FONT_HERSHEY_SIMPLEX, 1e-3 * image.shape[0], (0, 0, 255), 1)
        cv2.imwrite('result/' + str(id_[0]) + '.jpg', image)
    for j in np.unique(name):
        cv2.rectangle(image,(xmin,ymin),(xmax,ymax),(0,0,255),1)
        cv2.putText(image,VOC_BBOX_LABEL_NAMES[j],(xmin,ymin-10),
        cv2.FONT_HERSHEY_SIMPLEX,1e-3*image.shape[0],(0,0,255),1)
        cv2.putText(image,str(score[i])[0:3],(xmin+30,ymin-10),
        cv2.FONT_HERSHEY_SIMPLEX,1e-3*image.shape[0],(0,0,255),1)

 

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

目标检测 获得的boundingbox 绘制并且保存 的相关文章

随机推荐

  • 排序算法6-归并排序

    1 什么是归并排序 归并排序是建立在归并操作上的一种有效的排序算法 该算法是采用分治法 Divide and Conquer 的一个非常典型的应用 将已有序的子 序列合并 得到完全有序的序列 即先使每个子序列有序 再使子序列段间有序 若将两
  • 电路端接电阻与信号完整性

    信号沿着传输线传播时 每时每刻阻抗都可能发生变化 例如 PCB走线的宽度或者厚度发生变化 PCB过孔 PCB转角 PCB上的电阻 电容 电感 接插件和器件引脚都会产生阻抗变化 若走线的瞬时阻抗 只和传输线的横截面积和材质特性有关 发生变化
  • keil使用arm_math文件报错

    引入该文件后编译报错 application arm math h 306 error 35 error directive Define according the used Cortex cor 添加如下全局宏定义 USE HAL DR
  • 如何将任意数据保存到以太坊区块链?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 虽然有北大博士讲 95 的区块链项目都没有前途 但我们知道区块链还是有它的优势 比如数据的不可篡改性对于版权保护有相当大的意义 而地址的匿名性则有其他潜在的用途 那么 如何
  • TensorFlow、PyTorch 和 Keras

    1 可用的 RNN 类型 在寻找 NLP 问题的深度学习解决方案时 循环神经网络 RNN 是开发人员最流行的首选架构 因此 从这个角度来比较框架是有意义的 所有正在考虑的框架都具有允许我们创建简单 RNN及其更进化的变体的模块 门控循环单元
  • V4l2框架基础知识(二)

    V4L2对uvc USB video class 免驱usb设备的编程框架 主要用于采集USB摄像头 采集方式 打开视频设备 设置视频设备的属性 缩放 裁剪等 在linux编程中直接使用ioctl 函数对设备I O通道进行管理 V4L2操作
  • 一文看懂PPP协议——PPP协议简介

    今天给大家介绍一下PPP协议的相关内容 文章浅显易懂 特别适合0基础同学 本文主将主要从PPP概述 PPP链路建立过程和PPP认证三个角度对PPP协议进行讲解 一 PPP概述 PPP point to point协议 即点对点协议 是数据链
  • unity获取用户鼠标与键盘操作

    Unity鼠标键盘输入 代码写在Update 函数中 屏幕坐标的原点在屏幕的左下角 1 通过Input API 获得鼠标的操作信息 1 获得鼠标的坐标位置 Input mousePosition 2 检测鼠标按下 Input GetMous
  • oracle如何去列的重复,oracle重复列只显示一次的实现

    CREATE TABLE test ob id VARCHAR 32 ob name VARCHAR 32 INSERT INTO test VALUES A001 A001 a INSERT INTO test VALUES A001 A
  • YOLOE,2022年新版YOLO解读

    前言 这是2022年第一个关于YOLO的改版 该版本由百度提出 称之为YOLOE 是目前各项指标sota的工业目检测器 性能sota且部署相对友好 该检测器的设计机制包括 Anchor free无锚盒机制 可扩展的backbone和neck
  • Spring的工作原理(二)IOC-DI

    目录 Spring的工作原理 二 IOC DI 一 什么是IOC 什么是DI 1 1 IOC Inversion of Control 控制反转 1 2 DI Dependency Injection 依赖注入 二 IOC控制反转基础知识
  • 【Python】ChineseCalendar包简介

    ChineseCalendar 是一个 Python 包 用于获取中国传统日历信息 这个包提供了中国农历 二十四节气 传统节日 黄历等信息 你可以使用以下命令来安装这个包 pip install ChineseCalendar 安装完成后
  • iOS开发 将html加载到页面上

    记得要引入头文件 import WebKit WebKit h weakself myWebView WKWebView alloc initWithFrame CGRectMake 0 206 weakself view com widt
  • stm32入门自学笔记

    一 二极管 二极管是一种由半导体材料制成的一种具有单向导电性能的电子元器件 二极管就是由一个由 P 型半导体和 N 型半导体形成的 PN 结加上相应的电极引线及管壳封装而成的 NPN和PNP型三极管的作用 1 NPN三极管 基极加高电压 集
  • PRBS笔记

    1 概述 PRBS 伪随机二进制序列 也称为伪随机码 通常被用来测试高速信号的信号质量 伪随机 也说明了该码流并不是真正的随机 而是具有特性属性 码流由 多项式 决定 具有重复周期 PRBS具有多种阶数 如PRBS7 PRBS15 PRBS
  • reify:rxjs: timing reifyNode:node_modules/@vue/cli/node_modules——————npm run dev报错-npm初始化错误

    金钱不够 全靠技术 创建vue3的问题总结 reify rxjs timing reifyNode node modules vue cli node modules卡死不动 npm run dev报错 全局安装webpack 总结 rei
  • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your

    以下是解决问题的过程 没整理 root localhost flush privileges bash flush 未找到命令 root localhost mysql uroot p Enter password Welcome to t
  • Java 获取季度开始时间结束时间,获取日期所在月份,获取所在季度

    根据季度数获取季度的开始时间结束时间 public static Map
  • STM32【复习串口】

    串口复习加深理解笔记 杂谈 USART FLAG TXE发送缓冲区空标志 说明可以往数据寄存器写入数据了 但并不代码数据发送完成了 USART FLAG TC发送完成标志 这个才是代表USART在缓冲区的数据发送完成了 即从机接收到了数据
  • 目标检测 获得的boundingbox 绘制并且保存

    可能我是读了一个假的研究生 这么简单的弄了3个小时 本来打算用现成的 可是一直保存不了 后面没办法自己写了一个 其中 VOC BBOX LABEL NAMES是list数组 保存对应的标签名 如果类别多的话可以用循环来写 我写在第二个代码上