************************************************************************* *學習例程 measure_arc.hdev *date:2019/07/30 ************************************************************************* *讀取圖像 read_image (Image, 'zeiss1') dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image) get_image_size (Image, Width, Height) ************************************************************************* *設置弧形 nRow := 275 nColumn := 335 nRadius := 107 nAngleStart := -rad(55) nAngleExtent := rad(170) *nAngleStart+nAngleExtent 弧形長度 *nRow 橢圓中心行坐標 *nColumn 橢圓中心列坐標 *nRadius 橢圓最長軸半徑 *nRadius 橢圓最短軸半徑 *RowPoint 輸出點行坐標 *ColPoint 輸出點列坐標 get_points_ellipse (nAngleStart+nAngleExtent, nRow, nColumn, 0, nRadius, nRadius, RowPoint, ColPoint) ***************************************************************************************************************** *繪制弧形線 dev_set_draw ('fill') dev_set_color ('green') dev_set_line_width (1) *RowPoint 開始點行坐標 *ColPoint 開始點列坐標 disp_arc (WindowHandle, nRow, nColumn, nAngleExtent, RowPoint, ColPoint) ***************************************************************************************************************** *提取垂直於環形的直邊 *獲取弧形測量句柄 *10 - 環空半徑 <= nRadius gen_measure_arc (nRow, nColumn, nRadius, nAngleStart, nAngleExtent, 10, Width, Height, 'nearest_neighbor', MeasureHandle) *提取垂直於矩形或環形弧的直線邊緣 *1-高斯平滑 *10-最低邊緣振幅 *'all' - 由明-暗,或暗-明 *'all' - 端點選擇 *Amplitude - 邊緣振幅的邊緣 measure_pos (Image, MeasureHandle, 1, 10, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance) close_measure (MeasureHandle) gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 60, 0)