halcon使用算子记录

read_image( : Image : FileName : )
功能:读取图像
图标输入参数:无
图标输出参数:输出图像
控制输入参数:读取的图片名称
控制输出参数:无

读取单张图片
read_image(img_org,'./imgs/1.bmp')
变量名称 img_org
dev_display(img_org)
显示图片img_org
读取图片数组
read_image(img_arry,['./source.jpg', './2.jpg'])
* 循环读取文件夹图片
list_files ('D:/1_程序/Halcon/halcon/day02/木板图片', ['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 1
    read_image (Image, ImageFiles[Index])
    * 循环获取到图片
endfor

threshold(Image : Region : MinGray, MaxGray : )
功能:选择满足控制参数的灰度值之内的灰度值,当所有的像素点都满足这个区域的话,就有一个区域,当有多个像素段满足这个限制,每个像素段对应一个区域
图标输入参数:输入图像
图标输出参数:分割后的结果
控制输入参数:输入控制参数,分割的最小灰度值和最大灰度值
控制输出参数:无

eg:
dev_close_window()
dev_update_off()
read_image(Image,'fabrik')
threshold(Image,seg,50,255)
dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)
dev_display(seg)

connection(Region : ConnectedRegions : : )
功能:分离一个区域中相连接部分(变成多个区域) 用不同的颜色表述出来
图标输入参数:输入一个区域
图标输出参数:输出独立并且相连接部分
控制输入参数:无
控制输出参数:无
eg:
read_image(Image,'mreut')
threshold(Image,Region,190,255)
connection(Region,ConnectedRegions)
select_shape(ConnectedRegions,SelectdRegions,'area','and',5000,1000000)
fill_up(SelectdRegions,RegionFillUp)
dev_set_color('red')

select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )
功能:将连接的区域进行筛选,筛选的特征有很多,如面积长度等,可以去掉不满足条件的轮廓
图标输入参数:要检测的区域
图标输出参数:符合条件的区域
控制输入参数:要检测的形状特征,单个特征的连接类型 特征下限最小值  特征上限最大值
控制输出参数:无
eg:
read_image(Image,'monkey')
threshold(Image,S1,160,255)
connection(S1,S2)
select_shape(S2,Eyes,['area','anisometry'],'and',[500,1.0],[50000,1.7])
disp_region(Eyes,WindowHandle)

area_center(Regions : : : Area, Row, Column)
功能:区域和区域中心
图标输入参数:被测区域
图标输出参数:无
控制输入参数:无
控制输出参数:被测区域的面积,被测区域中心行索引 ,被测区域中心列索引
eg:
gen_circle(Circle,500,300,150)
area_center(Circle,Area,Row,Column)

gen_cross_contour_xld( : Cross : Row, Col, Size, Angle :)
功能: 为每个输入点生成一个十字架形状的xld轮廓1
图标输入参数:无
图标输出参数:生成的xld轮廓
控制输入参数:输入点的行坐标 输入点的列坐标 十字的长度  十字的方向
控制输出参数: 无
gen_cross_contour_xld (Cross, Row, Column, 2000, 0)

edges_sub_pix(Image:Edges:Filter,Alpha,Low,High:)
功能:利用deriche lanser shen和canny过滤器提取亚像素精度边缘,提取图像精确边缘 (精确边缘就是亚像素边缘)
图标输入参数 :输入图像
图标输出参数 :输出边缘轮廓
控制输入参数 :边缘提取算法的名称(canny lanser) 高斯平滑系数 低阈值 高阈值
控制输出参数 :无
canny算子
使用累计直方图计算两个阈值,凡是大于高阈值的一定是边缘;凡是小于低阈值的不一定不是边缘;如果检测结果大于低阈值又小于高阈值,那就要看这个像素的领接像素中有没有超过高阈值的边缘像素,如果有的话那么他就是边缘了,否则他就不是边缘
edges_sub_pix (Image, Edges, 'canny', 30, 50, 100)

opening_circle(Region : RegionOpening : Radius : )
功能:开运算 圆形开运算
图标输入参数: 
图标输出参数: 
控制输入参数:  
控制输出参数: 
opening_circle (Region, RegionOpening,1)

你可能感兴趣的:(halcon,人工智能,python,计算机视觉)