You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.9 KiB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <hdevelop file_version="1.2" halcon_version="21.05.0.0">
  3. <procedure name="My_Sort_XY">
  4. <interface>
  5. <io>
  6. <par name="ConnectedRegions" base_type="iconic" dimension="0"/>
  7. </io>
  8. <oo>
  9. <par name="ObjectSelected17" base_type="iconic" dimension="0"/>
  10. </oo>
  11. <ic>
  12. <par name="Width" base_type="ctrl" dimension="0"/>
  13. <par name="times" base_type="ctrl" dimension="0"/>
  14. </ic>
  15. </interface>
  16. <body>
  17. <l>num:=1</l>
  18. <l>* times:=1</l>
  19. <c>*先判断是行是列,用不同的排序方式</c>
  20. <l>height_width_ratio (ConnectedRegions, Height, Width1, Ratio)</l>
  21. <l>tuple_mean (Height, Height_Mean)</l>
  22. <l>tuple_mean (Width1, Width1_Mean)</l>
  23. <l>if (Height_Mean&gt;Width1_Mean)</l>
  24. <l> para:='row'</l>
  25. <l>else</l>
  26. <l> para:='column'</l>
  27. <l>endif</l>
  28. <l>union1 (ConnectedRegions, RegionUnion11)</l>
  29. <l>closing_rectangle1 (RegionUnion11, RegionClosing10, Width, 1)</l>
  30. <l>connection (RegionClosing10, ConnectedRegions20)</l>
  31. <l>sort_region (ConnectedRegions20, SortedRegions, 'first_point', 'true', 'row')</l>
  32. <l>count_obj (ConnectedRegions20, Number15)</l>
  33. <l>for Index9 := 1 to Number15 by 1</l>
  34. <l> select_obj (SortedRegions, ObjectSelected7, Index9)</l>
  35. <l> intersection (ObjectSelected7, RegionUnion11, RegionIntersection3)</l>
  36. <l> connection (RegionIntersection3, ConnectedRegions22)</l>
  37. <l> sort_region (ConnectedRegions22, SortedRegions2, 'first_point', 'true', para)</l>
  38. <l> count_obj (SortedRegions2, Number16)</l>
  39. <l> for Index10 := 1 to Number16 by 1</l>
  40. <c> </c>
  41. <l> if (times=num)</l>
  42. <l> select_obj (SortedRegions2,ObjectSelected17, Index10) </l>
  43. <l> return()</l>
  44. <l> endif</l>
  45. <l> num:=num+1</l>
  46. <l> endfor</l>
  47. <l>endfor</l>
  48. <l>return ()</l>
  49. </body>
  50. <docu id="My_Sort_XY">
  51. <parameters>
  52. <parameter id="ConnectedRegions"/>
  53. <parameter id="ObjectSelected17"/>
  54. <parameter id="Width"/>
  55. <parameter id="times"/>
  56. </parameters>
  57. </docu>
  58. </procedure>
  59. </hdevelop>