MCPcopy Index your code
hub / github.com/BIT-DataLab/Edit-Banana / process

Method process

modules/refinement_processor.py:135–243  ·  view source on GitHub ↗

处理入口 - 对问题区域进行Fallback补救 Args: context: 处理上下文 Returns: ProcessingResult,新增的元素会被添加到context.elements中

(self, context: ProcessingContext)

Source from the content-addressed store, hash-verified

133 self.refine_config = {**self.DEFAULT_CONFIG, **(config or {})}
134
135 def process(self, context: ProcessingContext) -> ProcessingResult:
136 """
137 处理入口 - 对问题区域进行Fallback补救
138
139 Args:
140 context: 处理上下文
141
142 Returns:
143 ProcessingResult,新增的元素会被添加到context.elements中
144 """
145 self._log("开始二次处理(Fallback补救)")
146
147 # 获取问题区域
148 bad_regions = context.intermediate_results.get('bad_regions', [])
149
150 if not bad_regions:
151 self._log("没有问题区域需要处理")
152 return ProcessingResult(
153 success=True,
154 elements=context.elements,
155 canvas_width=context.canvas_width,
156 canvas_height=context.canvas_height,
157 metadata={
158 'new_elements_count': 0,
159 'regions_processed': 0,
160 'regions_skipped': 0
161 }
162 )
163
164 # 加载原图
165 if not context.image_path or not os.path.exists(context.image_path):
166 return ProcessingResult(
167 success=False,
168 error_message="图片路径无效"
169 )
170
171 original_image = Image.open(context.image_path).convert("RGB")
172 img_width, img_height = original_image.size
173 img_area = img_width * img_height
174
175 # 加载CV2图像用于白色检测
176 cv2_image = None
177 if self.refine_config.get('skip_if_mostly_white', True):
178 cv2_image = cv2.imread(context.image_path)
179
180 # 处理问题区域
181 new_elements = []
182 skipped_count = 0
183 start_id = len(context.elements)
184
185 # 获取配置参数
186 min_area = self.refine_config.get('min_region_area', 100)
187 min_ratio = self.refine_config.get('min_region_ratio', 0.0005)
188
189 for i, region in enumerate(bad_regions):
190 try:
191 bbox = region.get('bbox', [])
192 if len(bbox) != 4:

Callers 2

refine_bad_regionsFunction · 0.95
evaluate_and_refineFunction · 0.95

Calls 4

_is_mostly_whiteMethod · 0.95
_process_regionMethod · 0.95
ProcessingResultClass · 0.85
_logMethod · 0.80

Tested by

no test coverage detected