BSE电镜多相含量分析软件:识别结果叠加显示技术

BSE电镜多相含量分析软件:识别结果叠加显示技术
分割完了得让人看得清楚。原图背景纯色填充、多Tab展示、单相独立查看——一个都不少。一、显示方案选型方案优点缺点选用半透明叠加能看到原图细节颜色不鲜明❌纯色填充保留背景边界清晰颜色鲜明区域内看不到原图✅轮廓线完全保留原图小区域不明显❌BSE分析需要清晰分辨物相边界选方案B。二、颜色方案pythonPHASE_COLORS { phase1: (255, 0, 0), # 红亮区 phase2: (0, 0, 255), # 蓝 phase3: (0, 255, 0), # 绿 phase4: (255, 255, 0), # 黄 phase5: (255, 0, 255), # 品红 }原则高区分度、红色对应亮区约定俗成。三、叠加显示pythondef display_overlay(self, masks): if self.rgb_img is None: return result self.rgb_img.copy() for phase_name, mask in masks.items(): color PHASE_COLORS.get(phase_name, (255, 255, 255)) result[mask 0] color # 布尔索引直接赋值 self.displayed_img result self.update_display()四、多Tab架构text原始图像 | 识别结果 | 相1 | 相2 | 相3 | 相4 | 相5原始图像原图识别结果所有相叠加相1~5各相单独显示动态显隐标签显示占比pythondef display_overlay_results(self, masks): orig_rgb self.original_canvas.rgb_img.copy() # 识别结果页 self.result_canvas.rgb_img orig_rgb.copy() self.result_canvas.display_overlay(masks) # 各物相页 for i in range(5): phase_name fphase{i1} if phase_name in masks: self.notebook.setTabVisible(i 2, True) single_mask {phase_name: masks[phase_name]} self.phase_canvases[phase_name].display_overlay(single_mask) percentage self.results[phase_name][percentage] self.phase_labels[phase_name].setText(f相{i1}: {percentage:.2f}%) else: self.notebook.setTabVisible(i 2, False)五、图像保存支持中文路径pythondef safe_imwrite(output_path, img): try: success cv2.imwrite(output_path, img) if success: return True except: pass try: ext output_path.split(.)[-1].lower() if ext in [jpg, jpeg]: _, data cv2.imencode(.jpg, img, [int(cv2.IMWRITE_JPEG_QUALITY), 95]) elif ext in [png]: _, data cv2.imencode(.png, img) else: _, data cv2.imencode(.tif, img) with open(output_path, wb) as f: f.write(data.tobytes()) return True except Exception as e: print(fError writing image: {e}) return False下篇预告下一篇写Excel报表自动导出汇总页、物相详情页、图像嵌入。