1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| list_files ('C:/Users/19901/Desktop/JnsWhite/图像/2024-10-16', 'files', Files) tuple_length (Files, Length)
for Index := 0 to 21 by 1 read_image (Image, Files[Index]) access_channel (Image, Image, 2) get_image_size (Image, Width, Height) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) set_display_font (WindowHandle, 14, 'mono', 'true', 'false') * 圆环坐标 CircleInitRow := [540, 1520, 540, 1520] CircleInitColumn := [1040, 1040, 1675, 1675] gen_cross_contour_xld (Cross1, CircleInitRow, CircleInitColumn, 6, 0.785398) CircleInitRadius := [gen_tuple_const(4, 105)] CircleRadiusTolerance := 30 * 测量模型 create_metrology_model (MetrologyHandle) set_metrology_model_image_size (MetrologyHandle, Width, Height) add_metrology_object_circle_measure (MetrologyHandle, CircleInitRow, CircleInitColumn, CircleInitRadius, CircleRadiusTolerance, 5, 1, 8, [], [], MetrologyCircleIndices) * 最大数量、边缘极性、最小分数 set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'num_instances', 1)
set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'measure_transition', 'negative') set_metrology_object_param (MetrologyHandle, MetrologyCircleIndices, 'min_score', .5) apply_metrology_model (Image, MetrologyHandle) get_metrology_object_result (MetrologyHandle, MetrologyCircleIndices, 'all', 'result_type', 'all_param', CircleParameter) Sequence := [0:3:|CircleParameter| - 1] CircleRow := CircleParameter[Sequence] CircleColumn := CircleParameter[Sequence + 1] CircleRadius := CircleParameter[Sequence + 2] get_metrology_object_result_contour (Contours, MetrologyHandle, 'all', 'all', 1.5) get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', Row1, Column1) gen_cross_contour_xld (Cross, Row1, Column1, 6, 0.785398) dev_display (Image) dev_set_line_width (1) dev_display (Contour) dev_display (Cross) dev_set_line_width (2) dev_display (Contours) * 数据存储 open_file ('C:/Users/19901/Desktop/CircleRadius.csv', 'append', FileHandle) NumCircles := |CircleRadius| for i := 0 to NumCircles-1 by 1 CircleRadiusScaled := CircleRadius[i] * 0.0125 * 2 CircleRadiusRounded := number(CircleRadiusScaled$'.3f') fwrite_string (FileHandle, CircleRadiusRounded + ', ') endfor fwrite_string (FileHandle, '\n') close_file(FileHandle)
endfor
|