原图
源码
read_image (Image, '0.bmp')
dev_clear_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 100000)gen_empty_obj (LineRegion)
PointNumber:=0
while (PointNumber<7)draw_point (WindowHandle, Row, Column)gen_region_points (Region1, Row, Column)select_shape_proto (SelectedRegions, Region1, SelectedRegions1, 'overlaps_abs', 1, 5)count_obj (SelectedRegions1, Number)if(Number>0)concat_obj (LineRegion, SelectedRegions1, LineRegion)PointNumber:=PointNumber+1endif
endwhilesmallest_circle (LineRegion, Row1, Column1, Radius)pts_to_best_line (Line, Row1, Column1, |Row1|, RowStart, ColStart, RowEnd, ColEnd)angle_lx (RowStart, ColStart, RowEnd, ColEnd, Angle)
angle:=deg(Angle)dev_display (Image)
disp_message (WindowHandle, '角度为:'+angle+'°', 'window', 50, 100, 'red', 'false')
dev_display (Line)