Halcon 常用算子
版本为: halcon12
函数名(输入,输出,参数)
halcon坐标系:
1.rgb1_to_gray(Image, GrayImage)
输入Image ,输出Image的灰度图GrayImage
2.threshold(GrayImage, Region1, 50, 255)
0为黑色,255为白色。
输入灰度图GrayImage,输出像素值 在(50,255)之间的区域Region1
3.mean_image (Image, ImageMean, 30, 30)
对输入图像Image的灰度值进行线性平滑。滤波器大小为30x30。
4.dyn_threshold (Image, ImageMean, RegionDynThresh, 5, 'dark')
输入原始图像Image,和处理后图像(一般采用滤波处理ImageMean)
利用局部阈值分割图像。其中,5:灰度值偏移量。(其值越大,提取的区域越小。)
5.erosion_circle(Region1, RegionErosion1, 3)
使用半径为3的圆形结构元素,对输入区域Region1进行腐蚀。
6.dilation_circle(Region1, RegionDilation1, 3)
使用半径为3的圆形结构元素,对输入区域Region1进行膨胀。
7.connection(Region1, ConnectedRegion1)
把一整块区域,分割成多个独立的小区域。
8.count_obj(ConnectedRegion1, Nums)
计算ConnectedRegion1中有几个独立的小区域,输出数量Nums
例一:
read_image (Image, 'C:/Users/86957/Desktop/testhalcon.png')
rgb1_to_gray(Image, GrayImage)
threshold(GrayImage, Region1, 0, 125)
connection(Region1, ConnectedRegion1)
count_obj(ConnectedRegion1, Numpoints)
9.select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 50,99999)
从ConnectedRegions内,根据面积'area',选择符合条件50到99999的SelectedRegions。
10.area_center(SelectedRegions, Area, RowsCenter, ColsCenter)
计算输入区域的面积和中心。
11.tuple_max(Area, MaxArea)
从列表Area=[15,21,11,7,35,1]中找到最大的元素MaxArea=35。
最小:tuple_min (Area, MinArea)。
12.tuple_find(Area, MaxArea, MaxAreaIndex)
从列表Area=[15,21,11,7,35,1]中找到最大的元素MaxArea=35,返回其所在位置的索引,即MaxArea在Area的第MaxAreaIndex位。
13.tuple_sort(Area, sortedArea)
将列表Area从小到大进行排序,返回排序好的列表sortedArea。Area=[15,21,11,7,35,1],sortedArea=[1,7,11,15,21,35].
14.tuple_sort_index (Area, AreaIndices)
将列表Area从小到大进行排序,返回索引AreaIndices。Area=[15,21,11,7,35,1],AreaIndices=[5,3,2,0,1,4]
15.tuple_inverse (tuple1, Invtuple1)
反转列表。tuple1=[1,2,3],Invtuple1=[3,2,1].
16.tuple_select_range(tuple1, 0, 2, tuple2)
返回tuple1从第0位到第2位的元素。tuple1=[1,3,5,7,9],tuple2=[1,3,5]。
17.tuple_select(tuple1, Indices, Selectedtuple)
根据索引Indices,返回tuple1中对应的元素。tuple1 = [2,4,6,8,10],Indices=[0,1,2]
selectedtuple = [2,4,6]
18.gen_contour_region_xld(ConnectedRegion1, Contours, 'border')
从ConnectedRegion1中寻找轮廓。
19.union_collinear_contours_xld(Contours, MergedContours, 15, 5, 5, 0.5, 'attr_keep')
将输入轮廓数组 Contours 中所有近似共线的轮廓合并,即大致位于同一条直线上的轮廓。
20.segment_contours_xld(MergedContours, Segments, 'lines', 20, 16, 8)
将输入的轮廓 MergedContours 按照 Mode 参数进行分割。如果 Mode='lines',则将其分割为直线。
例二:
MergedContours:
Segments:
21.hough_lines (ConnectedRegion1, 4, 100, 5, 5, Angle, Dist)
霍夫直线检测。
hough_lines
算子返回的 Angle
(法线角度)和 Dist
(原点距离)是直线的参数表示(HNF 形式)。
22.select_obj(ConnectedRegion1, SelectedRegions, [1,2,3])
从ConnectedRegion1中 选取索引为[1,2,3]的区域,构成新的区域 SelectedRegions。