专栏首页中科院渣渣博肆僧一枚PASCAL VOC统计各类目标数量

PASCAL VOC统计各类目标数量

# -*- coding:utf-8 -*-
import os
import xml.etree.ElementTree as ET
import numpy as np

np.set_printoptions(suppress=True, threshold=1000000)
import matplotlib
from PIL import Image


def parse_obj(xml_path, filename):
    tree = ET.parse(xml_path + filename)
    objects = []
    for obj in tree.findall('object'):
        obj_struct = {}
        obj_struct['name'] = obj.find('name').text
        objects.append(obj_struct)
    return objects


def read_image(image_path, filename):
    im = Image.open(image_path + filename)
    W = im.size[0]
    H = im.size[1]
    area = W * H
    im_info = [W, H, area]
    return im_info


if __name__ == '__main__':
    xml_path = 'D:\paper\\3low_light_image\expriment1\CAD_car\Annotations\\'
    filenamess = os.listdir(xml_path)
    filenames = []
    for name in filenamess:
        name = name.replace('.xml', '')
        filenames.append(name)
    recs = {}
    obs_shape = {}
    classnames = []
    num_objs = {}
    obj_avg = {}
    for i, name in enumerate(filenames):
        recs[name] = parse_obj(xml_path, name + '.xml')
    for name in filenames:
        for object in recs[name]:
            if object['name'] not in num_objs.keys():
                num_objs[object['name']] = 1
            else:
                num_objs[object['name']] += 1
            if object['name'] not in classnames:
                classnames.append(object['name'])
    for name in classnames:
        print('{}:{}个'.format(name, num_objs[name]))
    print('信息统计算完毕。')

承接Matlab、Python和C++的编程,机器学习、计算机视觉的理论实现及辅导,本科和硕士的均可,咸鱼交易,专业回答请走知乎,详谈请联系QQ号757160542,非诚勿扰。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 函数

    函数是带名字的代码块,用于完成具体的工作。通过使用函数,程序的编写、阅读、测试和修复都将更容易。

    于小勇
  • 将png格式的图像转换为jpg

    于小勇
  • python的子类继承父类构造函数说明

    原文链接:https://www.runoob.com/w3cnote/python-extends-init.html

    于小勇
  • Database first with EntityFramework (Migration)安装和升级

    最近看了国外几个项目,发现用EntityFramework做Code First的项目现在很流行。 最让我有兴趣的一个功能则是,EntityFramework对...

    麦克-堂
  • Python 数据库骚操作之 Redis

    前面一篇文章《Python 数据库骚操作 -- MongoDB》介绍了 MongoDB 的库,我把 MySQL 放在了最后面,这篇文章继续介绍 Redis 的操...

    小小詹同学
  • python变量,输入、输出、判断、循环

    声明变量 name = 'ajune' 变量赋值 name = 'ajune' name1 = name

    py3study
  • 中秋节,编个程序送给你

    小编虽然不是程序员,但好歹大一的时候也学过C语言。虽然是挂科两次才过的,但谭浩强老师的头像和简介,还历历在目……

    IT大咖说
  • Python操作Redis的最佳实践

    致码DevOps
  • python技巧分享(十三)

    songleo
  • Springmvc响应Ajax请求(@ResponseBody)

    爱撒谎的男孩

扫码关注云+社区

领取腾讯云代金券