select_shape_xld(XLD : SelectedXLD : Features, Operation, Min, Max : )
操作符select_shape_xld根据轮廓或多边形的形状选择它们。
对于XLD中的每一个输入轮廓或多边形,都计算出所指示的特征。
如果每个(Operation = 'and')或至少一个(Operation = 'or')计算出的特征在限制(Min,Max)之内,
则将轮廓分别复制到输出参数SelectedXLD 中。
Min《=Features《=Max,所有属性Features也都适合多边形轮廓
Features可选值有
area,轮廓面积,参考area_center_xld
area_points轮廓点面积,参考area_center_points_xld
row,column中心行列坐标,参考area_center_xld
row_points,column_points轮廓点中心行列坐标,参考area_center_points_xld
width,height,ratio轮廓最小外接平行矩形宽高,及它们比值,参考 height_width_ratio_xld。
row1,column1,row2,column2轮廓最小外接平行矩形左上右下角坐标,参考smallest_rectangle1_xld。
circularity,compactness,convexity轮廓圆度,密度,凸度,对应参考 circularity_xld,compactness_xld,convexity_xld。
contlength轮廓长度,参考length_xld。
ra',rb,phi轮廓最小外接椭圆,长短半轴及方向,参考elliptic_axis_xld
ra_points,rb_points,phi_points轮廓点最小外接椭圆长短半轴及方向,参考elliptic_axis_points_xld。
anisometry,anisometry_points,轮廓和轮廓点的不等距计算,对应参考eccentricity_xld,eccentricity_points_xld。
bulkiness,struct_factor蓬松度,结构因子,参考eccentricity_xld
max_diameter轮廓的最大直径,参考 diameter_xld
orientation,orientation_points轮廓,轮廓点方向,对应参考orientation_xld, orientation_points_xld。
rect2_phi,rect2_len1,rect2_len2轮廓最小外接旋转矩形旋转角度,长短边一半,参考smallest_rectangle2_xld。
'moments_m11', 'moments_m20', 'moments_m02':轮廓几何短,参考moments_region_2nd)
'moments_m11_points', 'moments_m20_points', 'moments_m02_points':轮廓点几何短,参考moments_points_xld。
如果只使用一个特性(Features)),那么 Operation 的值就没有意义。
几个特性按照输入它们的顺序进行处理。
有些特征的使用要求输入轮廓分别不能与自身相交,
否则结果没有意义。
(输入轮廓或多边形是否与自身相交可用test_self_intersection_xld确定)。
例程
dev_close_window ()
dev_open_window (0, 0, 768, 576, 'black', WindowID)
read_image (Rim, 'rim')
threshold (Rim, Dark, 0, 128)
connection (Dark, DarkRegions)
select_shape (DarkRegions, Circles, ['circularity','area'], 'and', [0.85,50], [1.0,99999])
dilation_circle (Circles, ROIOuter, 8.5)
erosion_circle (Circles, ROIInner, 8.5)
difference (ROIOuter, ROIInner, ROI)
union1 (ROI, ROIEdges)
reduce_domain (Rim, ROIEdges, RimReduced)
edges_sub_pix (RimReduced, Edges, 'canny', 4, 20, 40)
select_shape_xld (Edges, SelectedXLD, 'area', 'and', 150, 99999)
dev_display (Rim)
dev_display (SelectedXLD)
|