根据分割图生成bbox的csv标注:

news/2024/7/5 18:32:11

根据分割图生成bbox的csv标注:

import numpy as np
import skimage
from skimage.measure import label,regionprops
from skimage.filters import roberts
import os
import cv2
import pandas as pd

def get_patch_csv(filename_list, root_dir, output_path, area_thr = 9):
    # take the pred mask of segmention 
    annotation = pd.DataFrame()
    name_list = []
    x1_list = []
    y1_list = []
    x2_list = []
    y2_list = []
    bbox_id_list = []
    Bounding_boxes_list = []
    for filename in filename_list:
        im_path = os.path.join(root_dir, filename)
        img = cv2.imread(im_path)
        if len(img.shape)>2:
            img = img[:,:,0]
        label_img = label(img)
        bbox_id = 0
        for r in regionprops(label_img):
            if r.area < area_thr:
                continue
            name_list.append(filename[0:-3] + 'png')
            bbox_id_list.append(bbox_id)
            bbox_id += 1
            x1_list.append(r.bbox[1])
            y1_list.append(r.bbox[0])
            x2_list.append(r.bbox[3])
            y2_list.append(r.bbox[2])
            Bounding_boxes_list.append(','.join([str(r.bbox[i]) for i in [1,0,3,2]]))
    annotation['File_name'] = name_list
    annotation['bbox_id'] = bbox_id_list
    annotation['bbox_x1'] = x1_list
    annotation['bbox_y1'] = y1_list
    annotation['bbox_x2'] = x2_list
    annotation['bbox_y2'] = y2_list
    annotation['Bounding_boxes'] = Bounding_boxes_list
    annotation.to_csv(output_path)

if __name__ == "__main__":
    root_dir = ''
    output_path = 'xxx/seg_info.csv'
    filename_list = os.listdir(root_dir)
    get_patch_csv(filename_list, root_dir, output_path)

http://www.niftyadmin.cn/n/3658112.html

相关文章

Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]

(一). 概述1. 当鼠标悬浮到控件对象上, 会弹出此自定义控件.2. 具有通用性, 只要支持 onmouseenter/onmouseleave 等几个事件方法的目标控件都可以使用此控件.3. 此控件与前面自定义控件[右击弹出菜单]控件有些类似, 区别是这个控件客户端JavaScript部分有些麻烦.(二). 运行如…

Asp.net 2.0 自定义控件开发[实现GridView多行表头固定表体滚动效果][示例代码下载]

(一). 概述1. 实现GridView表头固定表体滚动效果2. 继承GridView的所有功能, 增加扩展功能, 表体滚动功能; 不需要另外加辅助滚动控件, 如.3. 支持多行表头滚动, 此控件能够自动检测到使用者增加的表头的行数. 准确的实现表头滚动.有增加GridView多表头实现方案, 请看[多表头自…

Asp.net 2.0 自定义控件开发[实现自动计算功能(AutoComputeControl)][示例代码下载]

(一). 概述 业余时间做了一个非常有用的控件, 介绍一下. 一般当我们要实现这样一个计算功能页面: TextBox1(单价) * TextBox2(数量) TextBox3(总和); 并且当在TextBox1或TextBox2中输入数据, 鼠标离开时, TextBox3控件能够即时重…

python项目经验

项目编排心得 写一个庞大的项目时&#xff0c;可以把model和其它设置所需参数&#xff0c;集中到一个config file&#xff0c;在主程序读取该file并作为一个字典变量自始至终传递&#xff0c;就避免了过多的参数传递&#xff0c;而且把所有函数的参数细节用一个很轻松简洁的方…

Asp.net 2.0自定义控件(点击HyperLink后执行事件)[网友问题: DataList里HyperLink控件激发事件,在哪定义?]

(一). 概述HyperLink默认没有Click事件, 重写了一个HyperLink自定义控件.实现原理: 默认Hyperlink是跳到点击请求的页面, 本HyperLink自定义控件最终也是跳转到请求的页面, 但期间执行了自己的一个方法, 我们可以在此方法中添写自己所需的功能.本示例演示统计此超链接点击次数…

Mysql同步到ES时date和time字段类型转换问题解决办法

这个问题中发生问题的es字段映射类型为date类型&#xff01;&#xff01;&#xff01; 字符串类型的会好很多&#xff0c;关键我这边是通过logstash生成索引&#xff0c;并且全量同步的&#xff0c;不好改索引类型&#xff01;&#xff01;&#xff01; 问题描述&#xff1a; …

Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)

(一). 概述 最近研究了一下Asp.net页面存储状态机制, 看了些资料, 进行一下汇总. Web 应用程序是无状态的。每次从服务器请求网页时&#xff0c;都会创建网页类的一个新实例。这通常意味着在每次往返过程中将会丢失所有与该页面及其控件关联的信息. 因此页面…

各种梯度模板

一阶差分的定义&#xff1a;直接差分算子&#xff1a;Robert交叉梯度算子&#xff1a;sobel算子&#xff1a;二阶差分&#xff1a;拉普拉斯