read_image(Image, 'fabrik')
threshold(Image, Region, 128, 255)
connection (Region, ConnectedRegions)
*变换区域的形状(凸包性等)
shape_trans(ConnectedRegions, RegionTrans, 'convex')
*区域筛选
select_shape(ConnectedRegions, ConnectedRegions, 'area', 'and', 100, 99999)
*平行于主轴的最小矩形
smallest_rectangle1 (ConnectedRegions, Row1, Column1, Row2, Column2)
*任意方向的最小矩形(复杂但快速的方法)
smallest_rectangle2(ConnectedRegions, Row, Column, Phi, Length1, Length2)
*最小外接圆
smallest_circle(ConnectedRegions, Row3, Column3, Radius)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2)
gen_circle(Circle, Row3, Column3, Radius)
count_obj(Rectangle,Number2)
count_obj (Circle, Number3)
*把第二个参数里的所有区域合并到第一个参数的每一个区域中
union2 (Rectangle,Circle,RegionUnion1)
connection (RegionUnion1, ConnectedRegions1)
count_obj(ConnectedRegions1, Number1)
*把所有ROI合并成一个区域
union1 (Circle, RegionUnion)
count_obj(RegionUnion, Number)
*计算每个输入区域的补集
complement (RegionUnion, RegionComplement)
*第一个参数中的每一个区域与第二个参数中的区域进行相交
intersection(Circle,Rectangle,RegionIntersection)
*去掉第二个参数与第一个参数共有的区域(在第一个区域中出现但不在第二个区域中)
difference(Rectangle,ConnectedRegions,RegionDifference)
draw_rectangle1(3600, Row11, Column11, Row21, Column21)
gen_rectangle1 (Rectangle2, Row11, Column11, Row21, Column21)
*求Region指定特征值
region_features (Rectangle2,'area', Value)
*裁剪图像(两种方法)
add_channels(Rectangle2, Image, GrayRegions)
crop_domain (GrayRegions, ImagePart)
reduce_domain (Image,Rectangle2, ImageReduced)
crop_domain(ImageReduced, ImagePart1)
*对灰度值进行线性变换(g' := g * Mult + Add)
scale_image(Image,ImageScaled,1,20)
min_max_gray(Rectangle2, ImageScaled, 0, Min, Max, Range)
*把灰度值拉升到0-255
scale_image_max(ImageScaled, ImageScaleMax)
min_max_gray (Rectangle2, ImageScaleMax, 0, Min1, Max1, Range1)


算子释义:
shape_trans(Region : RegionTrans : Type : )
参数Type的可选项如下:
convex:凸包性
ellipse:与输入区域有相同的矩和区域的椭圆
outer_circle:最小外接圆
inner_circle:最大内接圆
rectangle1:平行于坐标轴的最小外接矩形
rectangle2:最小外接矩形
inner_rectangle1:平行于坐标轴的最大内接矩形
inner_rectangle2:输入区域的骨架点拥有同输入区域的重心点最小的距离
PS:如果Type是outer_circle,最终的圆形区域不是完全覆盖输入区域,因为内部算法原理
是由算子smallest_circle和gen_circle完成的。由smallest_circle计算的半径能够小到1/sqrt(2)-0.5个像素。
同时,由gen_circle生成的圆在双方向上由0.5个像素转换。因此,当加入双方的影响,
原因区域可能要超出返回圆形区域至多1个像素