read_image (Image0, '0.bmp')
binary_threshold (Image0, Region, 'max_separability', 'dark', UsedThreshold)
connection (Region, ConnectedRegions)
fill_up (ConnectedRegions, RegionFillUp)
select_shape_std (RegionFillUp, SelectedRegions, 'max_area', 70)
reduce_domain (Image0, SelectedRegions, ImageReduced)
binary_threshold (ImageReduced, Region1, 'max_separability', 'dark', UsedThreshold1)
connection (Region1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'circularity', 'and', 0.7, 1)
sort_region (SelectedRegions1, SortedRegions, 'first_point', 'true', 'row')
area_center (SelectedRegions1, Area, Row, Column)
angle_lx (Row[21], Column[21], Row[27], Column[27], Angle)
Angle:=-0.0143655
disX:=Column[0]-(Column[21]+Column[27])/2
disY:=Row[0]-(Row[21]+Row[27])/2
read_image (Image45, '45.bmp')
binary_threshold (Image45, Region2, 'max_separability', 'dark', UsedThreshold2)
connection (Region2, ConnectedRegions2)
fill_up (ConnectedRegions2, RegionFillUp1)
select_shape_std (RegionFillUp1, SelectedRegions2, 'max_area', 70)
reduce_domain (Image45, SelectedRegions2, ImageReduced1)
binary_threshold (ImageReduced1, Region3, 'max_separability', 'dark', UsedThreshold3)
connection (Region3, ConnectedRegions3)
select_shape (ConnectedRegions3, SelectedRegions3, 'circularity', 'and', 0.7, 1)
sort_region (SelectedRegions3, SortedRegions1, 'first_point', 'true', 'row')
area_center (SortedRegions1, Area1, Row1, Column1)
angle_lx (Row1[10], Column1[10], Row1[38], Column1[38], Angle1)
Angle1:=-0.60473
pointX:=661.795
pointY:=194.239
centerX:=(Column1[10]+Column1[38])/2
centerY:=(Row1[10]+Row1[38])/2
centerX:=737.454
centerY:=608.817
AngleB:=-(Angle1-Angle)
RotX := disX * cos(AngleB) - disY * sin(AngleB)
RotY := disY * cos(AngleB) + disX * sin(AngleB)
NewX := RotX + centerX
NewY := RotY + centerY
运行结果