read_image (Image, 'D:/20221104-081503-0.bmp')
threshold (Image, Region, 83, 255)
connection (Region, ConnectedRegions)
* select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 194000, 195000)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 180400, 185000)
get_region_polygon (SelectedRegions, 5, Rows, Columns)
* gen_contour_polygon_rounded_xld (Contour1, Rows, Columns, [0,20,0,0,0], 1)
gen_contour_region_xld (SelectedRegions, Contours, 'border')
* segment_contours_xld (Contours, ContoursSplit, 'lines',18, 30, 18)
* shape_trans_xld (Contours, XLDTrans, 'rectangle2')
fit_rectangle2_contour_xld (Contours, 'tukey', -1, 0, 2, 3, 1, Row3, Column3, Phi2, Length11, Length21, PointOrder)
gen_region_contour_xld (Contours, Region2, 'filled')
tuple_length(Row3,Length)
for Index := 0 to Length-1 by 1
smallest_rectangle2 (SelectedRegions, Row4, Column4, Phi4, Length13, Length23)
gen_rectangle2 (Rectangle, Row3[Index], Column3[Index], Phi2[Index],Length11[Index], Length21[Index])
* gen_rectangle2_contour_xld (Rectangle1, Row3[Index], Column3[Index], Phi2[Index],Length11[Index], Length21[Index])
* smallest_rectangle2 (Rectangle, Row1, Column1, Phi3, Length12, Length22)
* orientation_region(RegionAffineTrans, Phi11)
* get_contour_xld (Rectangle1, Row6, Col6)
* gen_cross_contour_xld (Cross2, Row6, Col6, 60, 0)
*orientation_region (RegionAffineTrans, Phi1)
*gen_cross_contour_xld (Cross1, Row6, Col6, 60, Phi)
dev_display (Image)
Length1:= Length11[Index]
Length2:=Length21[Index]
Phi1:=Phi2[Index]
if(abs(deg(Phi2[Index]))>45)
Phi1:=rad(deg(Phi2[Index])-90*(Phi2[Index]/abs(Phi2[Index])))
Tmp:=Length11[Index]
Length1:= Length21[Index]
Length2:=Tmp
endif
tuple_sin (Phi1, Sin)
tuple_cos (Phi1, Cos)
* tuple_cos (Phi2[Index], Cos)
* tuple_sin (Phi2[Index], Sin)
* RT_X := -Length11[Index]*Cos - Length21[Index]*Sin
* RT_Y := -Length11[Index]*Sin + Length21[Index]*Cos
* gen_circle (Circle, Row3[Index]-RT_Y, Column3[Index]+RT_X, 10)
*左上角
TopLeft_X := -Length1*Cos - Length2*Sin
TopLeft_Y := -Length1*Sin + Length2*Cos
TopLeft_Row := Row3[Index] - TopLeft_Y
TopLeft_Col := Column3[Index] + TopLeft_X
* gen_cross_contour_xld (Cross, TopLeft_Row, TopLeft_Col, 36, 0)
*右上角
TopRight_X := Length1*Cos - Length2*Sin
TopRight_Y := Length1*Sin + Length2*Cos
TopRight_Row := Row3[Index] - TopRight_Y
TopRight_Col := Column3[Index] + TopRight_X
* gen_cross_contour_xld (Cross1, TopRight_Row, TopRight_Col, 36, 0)
*右下角
LowerRight_X := Length1*Cos + Length2*Sin
LowerRight_Y := Length1*Sin - Length2*Cos
LowerRight_Row := Row3[Index] - LowerRight_Y
LowerRight_Col := Column3[Index] + LowerRight_X
* gen_cross_contour_xld (Cross2, LowerRight_Row, LowerRight_Col, 36, 0)
*左下角
LowerLeft_X := -Length1*Cos + Length2*Sin
LowerLeft_Y := -Length1*Sin - Length2*Cos
LowerLeft_Row := Row3[Index] - LowerLeft_Y
LowerLeft_Col := Column3[Index] + LowerLeft_X
* gen_cross_contour_xld (Cross3, LowerLeft_Row, LowerLeft_Col, 36, 0)
* gen_region_line (RegionLines, TopLeft_Row, TopLeft_Col, TopRight_Row, TopRight_Col)
* gen_region_line (RegionLines1, TopLeft_Row, TopLeft_Col,LowerLeft_Row, LowerLeft_Col)
gen_contour_polygon_rounded_xld (Contour, [TopLeft_Row,TopRight_Row,LowerRight_Row,LowerLeft_Row,TopLeft_Row], [TopLeft_Col,TopRight_Col,LowerRight_Col,LowerLeft_Col,TopLeft_Col], [0,0,0,90,0], 1)
gen_region_contour_xld (Contour, Region1, 'filled')
* gen_region_line (RegionLines3, TopRight_Row, TopRight_Col,LowerLeft_Row, LowerLeft_Col)
* area_center (RegionLines3, Area1, Row2, Column2)
* angle_ll (Row6, Col6, Row6, Col6, Row6, Col6, Row6, Col6, Angle)
* intersection_lines (TopLeft_Row, TopLeft_Col, TopRight_Row, TopRight_Col, TopLeft_Row, TopLeft_Col,LowerLeft_Row, LowerLeft_Col, Row2, Column2, IsOverlapping)
* gen_cross_contour_xld (Cross4,Row2, Column2, 30, Phi2[Index])
difference (Region2, Region1, RegionDifference)
connection (RegionDifference, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 600, 99999)
* difference_closed_contours_xld (Cross4, Cross4, ContoursDifference)
* dev_display (Rectangle)
* dev_display (Cross4)
* dev_display (Cross1)
* dev_display (Cross2)
* dev_display (Cross3)
* dev_display (RegionLines3)文章来源:https://www.toymoban.com/news/detail-511074.html
* dev_display (RegionLines1)
* wait_seconds (2)
endfor
*
* fit_rectangle2_contour_xld (SelectedRegions, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)
文章来源地址https://www.toymoban.com/news/detail-511074.html
到了这里,关于gen_contour_polygon_rounded_xld的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!