目前我用是用两个变量把这个字体和xld都收集起来
让后转point数据,使用opencv的算子画在图片上
- import re
- # 给定的代码字符串
- code = """
- isng:=0
- dev_display(RegionTransEL)
- tuple_deg (Angle, Deg)
- if(abs(Deg-90)>degThre)
- dev_disp_text('NG '+Deg, 'image', MinRefRow, MinRefCol+50, 'red', [], [])
- isng:=1
- return()
- endif
- dev_disp_text('ok '+Deg, 'image', MinRefRow, MinRefCol+50, 'green', [], [])
- return ()
- """
- # 匹配 dev_display 和 dev_disp_text
- display_pattern = r"dev_display\((.*?)\)"
- text_pattern = r"dev_disp_text\((.*?)\)"
- # 添加 gen_empty_obj(DrawObjs) 到第一行
- code = "gen_empty_obj(DrawObjs)\n" + code
- # 添加 DrawTexts 到第一行
- code = "DrawTexts:=[]\n" + code
- # 替换 dev_display
- code = re.sub(display_pattern, r"concat_obj(DrawObjs, \1, DrawObjs)", code)
- # 替换 dev_disp_text
- def replace_text(match):
- params = match.group(1).split(',')
- text = params[0].strip()
- row = params[2]
- col = params[3]
- color = params[4].strip()
- return f"DrawTexts:=[DrawTexts, (({text})+'|'+({row})+'|'+({col})+'|'+({color}))]"
- code = re.sub(text_pattern, replace_text, code)
- print(code)
复制代码 大家有什么好的方案
|