一个实例的心得
rowII:=[157,133,112,133,152,178]
colII:=[292,316,400,445,460,471]
gen_contour_polygon_xld (ContourII,rowII, colII) //点形成一个轮廓,此轮廓用segment_contours_xld来分割,当这些点是圆弧上的一部分时,算子也不会把它判为圆,而是直线,是否因为点过少的原因
AttribII :=1
if(AttribII= -1)
fit_line_contour_xld (ContourII, 'tukey', -1, 0, 5, 2, RowBeginII, ColBeginII, RowEndII, ColEndII, NrII, NcII, DistII)
elseif(AttribII= 1)
fit_circle_contour_xld (ContourII, 'algebraic', -1, 0, 0, 3, 2, RowII, ColumnII, RadiusII, StartPhiII, EndPhiII, PointOrderII)
endif
dev_set_color ('blue')
if(AttribII= -1)
line_position (RowBeginII, ColBeginII, RowEndII, ColEndII, RowCenterII, ColCenterII, LengthII, PhiII)
gen_cross_contour_xld (CrossII, RowCenterII, ColCenterII, 16, PhiII)
get_contour_xld (CrossII, Row1II, ColII) //获得点
elseif(AttribII= 1)
* fit_circle_contour_xld (ContoursSplit, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
gen_circle (CircleII, RowII, ColumnII, RadiusII) //圆是一个区域(region),其它的形状应该也是吧
gen_contour_region_xld (CircleII, ContoursII, 'border') //把区域转成XLD
get_contour_xld (ContoursII, Row2II, Col1II)
tuple_max (Row2II, MaxII)
tuple_mean (Col1II, MeanII)
gen_cross_contour_xld (Cross1II, MaxII, MeanII, 11, 0)
endif

浙公网安备 33010602011771号