设为首页收藏本站
授权版本:2024_07
开启左侧

[Python] halcon engine 想要把region xld画在图片上,有什么方案

[复制链接]
ybvip 发表于 2024-2-21 13:13:46 | 显示全部楼层 |阅读模式
目前我用是用两个变量把这个字体和xld都收集起来

让后转point数据,使用opencv的算子画在图片上
  1. import re

  2. # 给定的代码字符串
  3. code = """
  4. isng:=0

  5. dev_display(RegionTransEL)

  6. tuple_deg (Angle, Deg)

  7. if(abs(Deg-90)>degThre)
  8.     dev_disp_text('NG '+Deg, 'image', MinRefRow, MinRefCol+50, 'red', [], [])
  9.     isng:=1
  10.     return()
  11. endif

  12. dev_disp_text('ok '+Deg, 'image', MinRefRow, MinRefCol+50, 'green', [], [])

  13. return ()
  14. """

  15. # 匹配 dev_display 和 dev_disp_text
  16. display_pattern = r"dev_display\((.*?)\)"
  17. text_pattern = r"dev_disp_text\((.*?)\)"

  18. # 添加 gen_empty_obj(DrawObjs) 到第一行
  19. code = "gen_empty_obj(DrawObjs)\n" + code
  20. # 添加 DrawTexts 到第一行
  21. code = "DrawTexts:=[]\n" + code

  22. # 替换 dev_display
  23. code = re.sub(display_pattern, r"concat_obj(DrawObjs, \1, DrawObjs)", code)



  24. # 替换 dev_disp_text
  25. def replace_text(match):
  26.     params = match.group(1).split(',')
  27.     text = params[0].strip()
  28.     row = params[2]
  29.     col = params[3]
  30.     color = params[4].strip()
  31.     return f"DrawTexts:=[DrawTexts, (({text})+'|'+({row})+'|'+({col})+'|'+({color}))]"

  32. code = re.sub(text_pattern, replace_text, code)

  33. print(code)
复制代码
大家有什么好的方案
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
hongky 发表于 2024-2-22 09:35:57 | 显示全部楼层
学习学习
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2024-2-22 11:35:58 | 显示全部楼层
如果要合成在图片上面,只能截图,dump_window这样方式,前提是分辨率一致。
可以参考:)https://www.51halcon.com/forum.php?mod=viewthread&tid=1331

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| ybvip 发表于 2024-2-22 14:16:11 | 显示全部楼层
Criss 发表于 2024-2-22 11:35
如果要合成在图片上面,只能截图,dump_window这样方式,前提是分辨率一致。
可以参考:)https://www.51ha ...

这个方案试过,多个线程不能公用一个window对象,并且并发时候存在锁,会大幅增加算法时间
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表