MCPcopy Create free account

hub / github.com/BIT-DataLab/Edit-Banana / types & classes

Types & classes50 in github.com/BIT-DataLab/Edit-Banana

↓ 18 callersClassProcessingResult
处理结果结构 - 每个模块处理完成后返回的标准格式
modules/data_types.py:185
↓ 11 callersClassProcessingContext
处理上下文 - 在整个处理流程中共享的数据 每个模块可以从context中读取需要的数据,也可以往里写入处理结果。 这样不同模块之间可以通过context传递数据。
modules/base.py:24
↓ 7 callersClassXMLFragment
XML片段结构 - 用于XMLMerger合并 每个子模块处理完成后,应该生成XMLFragment对象
modules/data_types.py:164
↓ 6 callersClassBoundingBox
边界框
modules/data_types.py:66
↓ 4 callersClassElementInfo
元素信息结构 - 所有模块之间传递元素的标准格式 SAM3提取后会填充: id, element_type, bbox, polygon, score, mask 各子模块处理后填充: xml_fragment, layer_level
modules/data_types.py:98
↓ 4 callersClassSam3InfoExtractor
Extract diagram elements via SAM3; prompt groups and thresholds from config.
modules/sam3_info_extractor.py:369
↓ 3 callersClassLocalOCR
本地 Tesseract OCR 客户端(默认文字识别引擎)
modules/text/ocr/local_ocr.py:21
↓ 3 callersClassMergedBlock
合并后的文本块
modules/text/processors/formula.py:22
↓ 3 callersClassMetricEvaluator
质量评估模块 评估SAM3+其他检测器的覆盖效果,识别漏检区域。 核心功能: 1. 计算内容覆盖率(检测到的内容占总内容的比例)= 评分 2. 识别问题区域(有内容但未被检测覆盖) 3. 输出总体评分和问题
modules/metric_evaluator.py:160
↓ 3 callersClassPipeline
Runs segmentation, text extraction, and XML merge (see README pipeline).
main.py:80
↓ 3 callersClassRefinementProcessor
二次处理模块(Fallback补救) 对MetricEvaluator识别出的问题区域进行二次处理。 核心策略(保守): - 直接裁剪问题区域作为picture - 转成base64嵌入XML - 保证"所
modules/refinement_processor.py:103
↓ 3 callersClassTextBlock
文本块数据结构
modules/text/ocr/base.py:12
↓ 3 callersClassTextRestorer
Coordinates OCR, processors, and XML output for text restoration. Default: Tesseract OCR + optional Pix2Text for formulas.
modules/text/restorer.py:28
↓ 3 callersClassXMLMerger
XML合并模块 职责: 1. 收集各模块生成的XML片段 2. 按层级排序(layer_level升序,小的在底层) 3. 同层级内按面积降序排列(大的在下,避免遮挡) 4. 重新分配mxCell的id,避免
modules/xml_merger.py:49
↓ 2 callersClassBasicShapeProcessor
基本图形处理模块 处理流程: 1. 从context.elements中筛选基本图形 2. 对每个图形提取填充色和描边色 3. 生成XML片段 4. 可选:运行CV补充检测遗漏的矩形
modules/basic_shape_processor.py:1349
↓ 2 callersClassCoordProcessor
Convert source image coordinates to canvas geometry with optional scaling.
modules/text/coord_processor.py:20
↓ 2 callersClassFontFamilyProcessor
字体处理器 处理流程: 1. extract_from_ocr: 从 OCR 结果提取字体 2. standardize: 标准化字体名称 3. infer_from_text: 根据文本内容推测字体 4. unify_by_cluster
modules/text/processors/font_family.py:28
↓ 2 callersClassFontSizeProcessor
Compute font size from block height; optional clustering to unify nearby blocks.
modules/text/processors/font_size.py:10
↓ 2 callersClassFormulaProcessor
公式处理器 处理流程: 1. 从 Pix2Text 结果提取有效公式 2. 计算公式与 layout OCR 文字块的重叠 3. 用公式替换被覆盖的文字块 4. 保留未被覆盖的 layout OCR 文字块
modules/text/processors/formula.py:40
↓ 2 callersClassIconPictureProcessor
Process icon/picture elements: filter, crop, optional RMBG, base64, XML fragments.
modules/icon_picture_processor.py:229
↓ 2 callersClassMxGraphXMLGenerator
mxGraph XML 生成器 使用示例: generator = MxGraphXMLGenerator() cell = generator.create_text_cell("Hello", 100, 200, 80, 20, 12)
modules/text/xml_generator.py:67
↓ 2 callersClassNormalizedCoords
Normalized geometry: x, y, width, height, baseline_y, rotation (degrees).
modules/text/coord_processor.py:10
↓ 2 callersClassOCRResult
OCR 识别结果
modules/text/ocr/base.py:29
↓ 2 callersClassStyleProcessor
样式处理器 处理的样式属性: - font_weight: normal / bold - font_style: normal / italic - font_color: 十六进制颜色(如 #1d1d1d) - background_c
modules/text/processors/style.py:17
↓ 1 callersClassPaddleOCRAdapter
OCR engine using PaddleOCR; often better for mixed Chinese/English than Tesseract. Requires: paddleocr, paddlepaddle (or paddlepaddle-gpu).
modules/text/ocr/paddle_ocr.py:25
↓ 1 callersClassPix2TextBlock
Pix2Text 识别块 Attributes: text: 文字/公式内容 polygon: 四边形坐标 block_type: 类型(text/formula/isolated/embedding) fo
modules/text/ocr/pix2text.py:32
↓ 1 callersClassPix2TextOCR
Pix2Text OCR 客户端 专门用于识别数学公式,返回 LaTeX 格式。 使用示例: ocr = Pix2TextOCR() result = ocr.analyze_image("input.png")
modules/text/ocr/pix2text.py:58
↓ 1 callersClassPix2TextResult
Pix2Text 识别结果
modules/text/ocr/pix2text.py:51
↓ 1 callersClassPredictResponse
sam3_service/server.py:34
↓ 1 callersClassProcessingConfig
处理配置
modules/data_types.py:231
↓ 1 callersClassPromptGroupConfig
提示词组配置
modules/sam3_info_extractor.py:41
↓ 1 callersClassRMBGInference
sam3_service/rmbg_server.py:24
↓ 1 callersClassRMBGModel
RMBG-2.0 background-removal model (ONNX Runtime, CUDA if available). Example: model = RMBGModel(model_path) model.load()
modules/icon_picture_processor.py:37
↓ 1 callersClassRMBGResponse
sam3_service/rmbg_server.py:20
↓ 1 callersClassRMBGServiceClient
sam3_service/rmbg_client.py:10
↓ 1 callersClassSAM3Model
SAM3模型封装
modules/sam3_info_extractor.py:214
↓ 1 callersClassSam3Runtime
sam3_service/server.py:81
↓ 1 callersClassSam3ServiceClient
sam3_service/client.py:8
↓ 1 callersClassTextCellData
文本单元格数据 存储单个文本框的所有信息。
modules/text/xml_generator.py:46
ClassBaseProcessor
处理模块基类 所有处理模块都应该继承此类并实现 process() 方法。 子模块职责: 1. 处理自己负责的元素类型 2. 生成对应的mxCell XML代码 3. 设置 element.xml_frag
modules/base.py:69
ClassConfigLoader
从config.yaml加载词组配置
modules/sam3_info_extractor.py:62
ClassDrawIOLibrary
DrawIO shape library (placeholder for extension).
modules/utils/drawio_library.py:13
ClassElementType
元素类型枚举
modules/data_types.py:17
ClassLayerLevel
层级定义(从底到顶) 数值越小越在底层,越大越在顶层
modules/data_types.py:51
ClassModelWrapper
模型封装基类 为了让"调用模型时应该就是一句话",我们将模型封装成简单的接口。 使用示例: model = SAM3Model() result = model.predict(image, prompts) # 一行调
modules/base.py:184
ClassPredictRequest
sam3_service/server.py:22
ClassPromptGroup
提示词分组
modules/sam3_info_extractor.py:32
ClassRMBGRequest
sam3_service/rmbg_server.py:16
ClassRMBGServicePool
sam3_service/rmbg_client.py:38
ClassSam3ServicePool
sam3_service/client.py:45