1、點到線
projection_pl.hdev,先在線上投影出點,再計算點與投影點的距離。求得點到直線的距離。
2、線、圓、弧
measure_metal_part_first_example.hdev
measure_metal_part.hdev
measure_metal_part_extended.hdev
3、網格
measure_grid.hdev
4、交點
線與線,弧與線
read_image (Image, 'C:/Users/Desktop/1.png') rgb1_to_gray (Image, Image) ***先找線與線的交點、大拐角的弧與線交點 points_sojka (Image, 9, 2.5, 0.75, 30, 90, 0.5, 'true', Row, Column) if (Row!=[]) gen_cross_contour_xld (Cross, Row, Column, 6, 0.785398) dev_display (Image) dev_display (Cross) else edges_sub_pix (Image, Edges, 'canny', 1, 20, 40) segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 2) select_shape_xld (ContoursSplit, SelectedXLD, 'circularity', 'and', 0, 0.02) ***對於弧與線過度比較柔和的,找線的端點作為弧與線的交點 fit_line_contour_xld (SelectedXLD, 'tukey', -1, 0, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist) get_image_size (Image, Width, Height) * 獲取線段遠離邊界的那個端點(即趨近於圖片中心的點) if (abs(Height/2-RowBegin)+abs(Width/2-ColBegin)<abs(Height/2-RowEnd)+abs(Width/2-ColEnd)) gen_cross_contour_xld (Cross, RowBegin, ColBegin, 6, 0.785398) else gen_cross_contour_xld (Cross, RowEnd, ColEnd, 6, 0.785398) endif dev_display (Image) dev_display (Cross) endif