Metadata-Version: 2.1
Name: Mtripix
Version: 0.1.0
Summary: api handle for data transform
Author: TriplePixels
Author-email: PIPIPINoBrain@163.com
License: apache 3.0
Requires: numpy
Requires: json
Requires: lxml
Requires: PIL
Requires: imgviz
Requires: opencv
Requires: math
Description-Content-Type: text/markdown

  # Auchor
* 西安燧仓科技有限公司  三重像素
* @PIPIPINoBrain
* 联系方式：PIPIPINoBrain@163.com

### <font color='red'>Mtripix.Mutils.Mtrans(usage)</font>


#### <font color=#FF7D00>安装方式</font> 
pip install Mtripix

#### <font color=#FF7D00>使用示例</font> 
import Mtripix.Mutils.Mtrans as Mt

idxs = [1,2,3]   
labels = ["dog", "cat", "person"]   
d = Mt.labels2dict(labels, idxs)    
path_xml = "C:\\Users\\18829\\Desktop\\MTP\\A.xml"
path_txt = "C:\\Users\\18829\\Desktop\\MTP\\A1.txt"     
Mt.xml2yoloobb(path_xml, path_txt, d)   

### updata
* 0.0.7
* 增加了语义分割的标签图像转换
* 增加了文件夹中标签的统计
* 0.0.8
* 增加了文件夹图片计算均值和方差的代码
* 修复了yolo2voc中空目标转换的bug，修复了未引用math的bug

# Environment
* import json
* import os.path
* import PIL
* import imgviz
* import numpy as np
* import cv2
* import lxml.etree as ET
* import math
* from lxml.etree import Element, SubElement, tostring, ElementTree


# Mtripix Function
## Mtripix.Mutils(lists)
### Mtripix.Mutils.Mtrans(lists)
* [__Mtripix.Mutils.Mtrans.labels2dict(labels, idxs)__](#font-colorff7d00mtripixmutilsmtranslabels2dictlabels-idxsfont)          **功能:  生成namedict，标签与类别对应的字典**  
* [__Mtripix.Mutils.Mtrans.voc2yolo(path_xml, path_txt, namedict)__](#font-colorff7d00mtripixmutilsmtransvoc2yolopathxml-pathtxt-namedictfont)   **功能:  labelme标注的xml格式转yolo格式(label, xc, yc, w, h)————相对值**                     
* [__Mtripix.Mutils.Mtrans.json2yolo(path_json, path_txt, namedict, mode)__](#font-colorff7d00mtripixmutilsmtransjson2yolopathjson-pathtxt-namedict-modefont) **功能:  labelimg标注的json格式转yolo检测格式(label, xc, yc, w, h)和分割格式(label, xy, xy, xy, xy)————相对值**               
* [__Mtripix.Mutils.Mtrans.voc2dotaobb(path_xml, path_txt)__](#font-colorff7d00mtripixmutilsmtransvoc2dotaobbpathxml-pathtxtfont-)**功能:  rolabelme和labelme标注的xml格式转DOTA数据格式,(xy,xy,xy,xy,label,difficulty)————绝对值**  
* [__Mtripix.Mutils.Mtrans.voc2yoloobb(path_xml, path_txt, namedict)__](#font-colorff7d00mtripixmutilsmtransvoc2yoloobbpathxml-pathtxt-namedictfont-)**功能:  rolabelme和labelme标注的xml格式转yoloobb数据格式,(label, xy, xy, xy, xy)————相对值**
* [__Mtripix.Mutils.Mtrans.yolo2voc(path_img, path_txt, path_xml, namedict)__](#font-colorff7d00mtripixmutilsmtransyolo2vocpathimg-pathtxt-pathxml-namedictfont)   功能:  转yolo格式(label, xc, yc, w, h)转labelme标注的xml格式————绝对值**   
* [__Mtripix.Mutils.Mtrans.labelsCheck(path, format)__](#font-colorff7d00mtripixmutilsmtranslabelscheckpath-formatfont)   功能:  计算当前标签文件夹中，各个标签的个数**   
* [__Mtripix.Mutils.Mtrans.json2mask_sem(path_json, path_mask, namedict)__](#font-colorff7d00mtripixmutilsmtransjson2masksempathjson-pathmask-namedictfont)   功能:  labelme标注的json文件转化为分割图像标签,返回标签灰度图像** 
* [__Mtripix.Mutils.Mtrans.compute_mean_and_std(path, format)__](#font-colorff7d00mtripixmutilsmtranscomputemeanandstdpath-format1font) 功能:  计算文件夹下的所有图像的均值方差** 

### <font color=FF0000>Mtripix.Mutils.Mtrans(intrudction)</font>
#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.labels2dict(labels, idxs)</font>
**@input:** 
  * labels(list/tuple):  标签名 里边都是str
  * idxs(list/tuple): 类别名 里边都是str 

**@return:** 
  * namedict(dict) 标签与类别对应的字典

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.voc2yolo(path_xml, path_txt, namedict)</font>
**@input:** 
  * path_xml(str):  xml文件地址
  * path_txt(str): 生成的yolo的txt地址
  * namedict(dict): 标签和类别对应的字典

**@return:** 
  * 0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.json2yolo(path_json, path_txt, namedict, mode)</font>
**@input:** 
  * path_json(str):  json文件地址
  * path_txt(str): 生成的yolo的txt地址
  * namedict(dict): 标签和类别对应的字典
  * mode(str): 一共可填两种模式“detection”和“segmentation”, 分别对应yolo检测和分割的文件,默认是“detection”

**@return:** 
  * 0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.voc2dotaobb(path_xml, path_txt)</font> 
**@input:** 
  * pathxml(str):  xml文件地址
  * path_txt(str): 生成的DOTA的txt地址

**@return:** 
  * 0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.voc2yoloobb(path_xml, path_txt, namedict)</font> 
**@input:** 
  * path_xml(str):  xml文件地址
  * path_txt(str): 生成的yoloobb的txt地址
  * namedict(dict): 标签和类别对应的字典

**@return:** 
  * 0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.yolo2voc(path_img, path_txt, path_xml, namedict)</font>
**@input:** 
  * path_img(str): 图像地址
  * path_txt(str): 图像的yolo格式txt地址
  * path_xml(str): 生成的xml地址
  * namedict(dict): 类别和标签对应的字典

**@return:** 
  * 0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.labelsCheck(path, format)</font>
**@input:** 
  * path(str): 当前的标签的文件夹地址
  * format: 需要统计的数据格式，有"voc","yolo"和”data“三种格式

**@return:** 
  * count()输出字典, keys是当前的类别, value是当前文件夹中各类别出现的次数


#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.json2mask_sem(path_json, path_mask, namedict)</font>
**@input:** 
  * path_json(str): labelme标注的语义分割json文件
  * path_txt(str): 需要保存的8位标签伪图像,png格式
  * namedict(dict): 类别和标签对应的字典

**@return:** 
  * img(array): 原图灰度图大小的分类特征图,类别为像素值,背景为0

#### <font color=#FF7D00>Mtripix.Mutils.Mtrans.compute_mean_and_std(path, format=1)</font>
**@input:** 
  * path(str): 图像存放的文件夹路径
  * format(int): 图片的类型 1 代表RGB, 2代表灰度图

**@return:** 
  * 返回两个参数，文件夹下图片的均值，方差(量化后)
  * mean: 文件夹下图片的均值(量化后)
  * std: 文件夹下图片的方差(量化后)



