一、读取文件夹中的所有图片
list_files ('C:/Users/fuping.liu/Desktop/槟榔有无头/有头', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])
endfor
二、图像变量Region
1、预处理:
消除噪声 | mean_image/ binomial_filter |
抑制小斑点或者细线 | median_image |
平滑 | smooth_image |
保存边缘的平滑 | anisotropic_diffusion |
2、选择相应区域
select_shape(regions,output,'select type',..requirements)
3、计算相应区域的面积,中心坐标:
area_center(regions,area,row,column)
4、不规则区域的转换:
shape_trans(region,regiontrans,type)
convex hull凸包围(由外向内包围)
outer_circle 外圆(能够包括对象的半径最小的圆形)
inner_circle 内圆
rectangle1 正矩形
rectangle2 最小包围矩形
inner_rectangle1 最大内矩形
5、填充区域
fill_up (region, RegionFillUp)
三 图型变量XLD(eXtended Line Descriptions)
1、XLD代表亚像素级别的轮廓或者多边形
threshold_sub_pix(inputimage, output,requirement)gen_contour_region_xld(inputRegion,output,...)edges_sub_pix(image,output,...,...)
注意:
在使用edges_sub_pix提取出来的结果,往往不是完整的圆形,需要用union来整合出完整的圆形。
2、XLD的选择操作(select_shape_xld/selet_contours_xld):select_shape_xld(XLD:SelectedXLD:Features,Operation,Min,Max:)
select_contours_xld(Contours:SelectedContours:Feature,Min1,Max1,Min2,Max2:)
3、计算xld的面积以及中心位置:
area_center_xld(XLD:::Area,row,column,pointOrder)
4、xld的合并操作:
union_colliner_contours_xld: 合并同一直线的xldunion_cocircular_contours_xld: 合并同圆的xldunion_adjacent_contours_xld: 合并相邻的xld
5、xld的转换操作与region类似:
shape_trans_xld(XLD:XLDTrans:Type:)
6、Xld的分割操作(segment_contours_xld)
把初始xld分割成直线,直线和圆,直线和椭圆
segment_contours_xld(Contours: ContoursSplit: Mode,SmoothCont, MaxLineDist1, MaxLineDist2:)
7、Xld 的拟合操作(fit_***_contour_xld) 把不完整的形状拟合完整
fit_line_contour_xldfit_circle_contour_xldfit_ellipse_contour_xldfit_rectangle2_contour_xld