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
difference(RegionOpening,RegionErosion,RegionDifference)