Halcon部分算子功能:

*读取一张图像
read_image(Image,'C:/Users/Desktop/无标题.png')
*画一个矩形生成区域
draw_rectangle1(3600, Row1, Column1, Row2, Column2)
*获得矩形区域
gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
*区域内最大、最小、最大-最小灰度值
min_max_gray(Rectangle, Image, 0, Min, Max, Range)
*获得特定区域位置的图像,但不改变原图像的大小
reduce_domain(Image, Rectangle, ImageReduced)
get_image_size(ImageReduced, Width, Height)
get_image_size(Image,Width1, Height1)
*对区域进行剪裁,将有值的区域以最小外界正矩形的方式返回,而剪掉那些没有值的区域。
crop_domain(ImageReduced, ImagePart)
*消除噪声,均值平滑
mean_image(ImageReduced, ImageMean, 9, 9)
*动态阈值分割
*原图、参考图、输出、邻域比较的区间范围、light提取相对参考图更亮的区域|dark|equal选取和参考图差不多的区域
dyn_threshold(ImageReduced, ImageMean, RegionDynThresh, 5, 'light')
*区域连通,可将阈值分割的不相连的区域分割成单个区域
connection(RegionDynThresh, ConnectedRegions)
*区域筛选,根据特征进行,最常用的是根据面积筛选
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 2500, 99999)
*区域联合,将几个区域合并为一个区域
union1(SelectedRegions, RegionUnion)
*将一张图像上的一个区域内的像素改为指定的灰度
*ps:如果报错,可检查输入图像是否带有其他格式,可使用rgb1_to_gray (Image, Image)算子
paint_region(Rectangle, Image, ImageResult, 255.0, 'fill')
*填充区域
fill_up_shape(RegionDynThresh, RegionFillUp, 'area', 1, 1000000)
*区域面积和中心,区域中心的行列坐标为区域内所有点横纵坐标的平均值
*ps:与采用区域最小外接矩形得出的中心点坐标有差异
area_center(RegionFillUp, Area, Row, Column)
*腐蚀,使用圆形结构腐蚀
erosion_circle(RegionFillUp,RegionErosion, 19.5)
*腐蚀,使用矩形结构腐蚀
erosion_rectangle1(RegionFillUp,RegionErosion1, 21, 21)
*膨胀,使用圆形结构膨胀
*ps:不是说将一个区域先腐蚀再膨胀,就能恢复到原始图像的
opening_circle(RegionFillUp,RegionOpening,19.5)
*膨胀,使用矩形结构膨胀
opening_rectangle1(RegionFillUp,RegionOpening1, 25, 25)
*计算两个区域的差异,本算子实现是区域1-区域2,如果区域1<区域2,则结果为空
difference(RegionOpening,RegionErosion,RegionDifference)