Advertisement
Guest User

Untitled

a guest
Aug 27th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. read_image (Image, 'D:/exp/Inspectorn/PlateControl/images/20161222_113310')
  2.  
  3. access_channel (Image, Image1, 1)
  4. copy_image (Image1, DupImage)
  5.  
  6.  
  7.  
  8. threshold (DupImage, Region, 100, 255)
  9.  
  10. overpaint_region (DupImage, Region, 255, 'fill')
  11. complement (Region, RegionComplement)
  12. overpaint_region (DupImage, RegionComplement, 0, 'fill')
  13.  
  14. connection (RegionComplement, ConnectedRegions)
  15.  
  16.  
  17. select_shape (ConnectedRegions, SelectedRegions, ['area','height','width','compactness'], 'and', [80,2,8,0], [999999,999999,999999,10])
  18.  
  19.  
  20. region_features (SelectedRegions, 'width', Width)
  21. region_features (SelectedRegions, 'height', Height)
  22. diagonals:=sqrt(Width*Width+Height*Height)
  23. ratios:=Width/Height
  24.  
  25. tuple_greater_elem (ratios, 0.25, Greater)
  26. tuple_less_elem (ratios, 1, Less)
  27. tuple_band (Greater, Less, BAnd)
  28. tuple_gen_sequence (1, |BAnd|, 1, Sequence)
  29. tuple_select_mask (Sequence, BAnd, Selected)
  30.  
  31. select_obj (SelectedRegions, ObjectSelected, Selected)
  32.  
  33. area_center (ObjectSelected, Area, Row, Column)
  34.  
  35. region_features (ObjectSelected, 'width', Width)
  36. region_features (ObjectSelected, 'height', Height)
  37. diagonals:=sqrt(Width*Width+Height*Height)
  38. dev_update_off()
  39. gen_empty_region (ResultRegion)
  40. for Index := 0 to |Area|-1 by 1
  41.     curRow:=Row[Index]
  42.     curCol:=Column[Index]
  43.     gen_empty_obj(PossibleList)
  44.     select_obj (ObjectSelected, ObjectSelected1, Index+1)
  45.     concat_obj (PossibleList,ObjectSelected1 , PossibleList)
  46.     for Index1 := Index+1 to |Area|-1 by 1
  47.         compRow:=Row[Index1]
  48.         compCol:=Column[Index1]
  49.         distance_pp (curRow, curCol, compRow, compCol, Distance)
  50.         ChangeInArea:=fabs(Area[Index]-Area[Index1])/Area[Index]
  51.         if(Distance<diagonals[Index]*3.0 and ChangeInArea <0.5)
  52.             select_obj (ObjectSelected, ObjectSelected1, Index1+1)
  53.             concat_obj (PossibleList,ObjectSelected1 , PossibleList)
  54.         endif
  55.     endfor
  56. count_obj (PossibleList, Number)
  57.     if(Number>3)
  58.         union1 (PossibleList, RegionUnion)
  59. smallest_rectangle1 (RegionUnion, Row1, Column1, Row2, Column2)
  60. gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
  61. concat_obj (ResultRegion, Rectangle, ResultRegion)
  62. dev_display (Rectangle)
  63.     endif
  64. endfor
  65. union1 (ResultRegion, ResultRegionUnion)
  66. connection (ResultRegionUnion, ConnectedRegions1)
  67.  
  68. reduce_domain (Image, ConnectedRegions1, ImageReduced)
  69. decompose3 (ImageReduced, Image11, Image2, Image3)
  70. max_image (Image11, Image2, ImageMin1)
  71. max_image (ImageMin1, Image3, ImageMin1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement