halcon-学习笔记
2022/1/5 6:11:36
本文主要是介绍halcon-学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
*halcon基础编程 等号 := 不等号 # 注释号 * 字符串赋值 str := 'halcon' 等于比较符 if(X=10) 与: if(A>1 and A<30) 或: if(A>1 or A<30) 求反: if(not(A=10)) * 二值化 threshold (Image, Region, 100, 255)4 * 形状变换 shape_trans (Region, RegionTrans, 'rectangle2') * 抠图 reduce_domain (Image, RegionTrans, ImageReduced) * 填充图像region fill_up_shape(Region1, RegionFillUp, 'area', 1, 100) * 用圆形结构元素打开一个区域。 opening_circle (RegionFillUp, RegionOpening, 15.5) * 开运算 opening_rectangle1 (RegionFillUp, RegionOpening, 140, 100) * 面积筛选 select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 800, 1100) * 排序 sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column') *计算区域的最小外接圆参数。 smallest_circle (SortedRegions, Row, Column, Radius) * 彩色图转灰度图 rgb1_to_gray (Image, GrayImage) # ================================================================================ 一.图像分割 1 => 灰度直方图的使用 2 => 阈值分割 threshold (Image, Region, 100, 255) # 二值化 binary_threshold (GrayImage, Region, 'smooth_histo', 'light', UsedThreshold) # 自动阈值分割 dyn_threshold (ImageMean, GrayImage, RegionDynThresh, 25, 'dark') #使用局部阈值分割图像 动态阈值分割 + mean_image mean_image (GrayImage, ImageMean, 10,10) 平均平滑。图像不均匀用动态 二.区域集合运算及变换 1 => 集合运算 union1 (RegionDynThresh, RegionUnion) # 合并 difference (RegionUnion, RegionUnion, RegionDifference) # 差集 地府润次 intersection (SelectedRegions, ConnectedRegions, RegionIntersection) # 交集 complement # 补集 con p men t 2 => 区域变换 connection (RegionDynThresh, ConnectedRegions) # 打散 fill_up (ConnectedRegions, RegionFillUp) # 填充 shape_trans (RegionFillUp, RegionTrans, 'convex') # 变换区域的形状。 skeleton (RegionTrans, Skeleton) # 骨架 三.形态学 # (fin.hdev, dyn_threshold.hdev, hull.hdev, rim.hdev) opening (RegionDynThresh, RegionDynThresh, RegionOpening) # 开运算 opening_circle (RegionDynThresh, RegionOpening, 3.5) closing_circle (RegionDynThresh, RegionClosing, 3.5) # 闭运算 dilation1 (RegionClosing, RegionClosing, RegionDilation, 1) # 膨胀 扩张区。 erosion1 (RegionDilation, RegionDilation, RegionErosion, 1) # 腐蚀 boundary (RegionErosion, RegionBorder, 'inner') # 减少一个区域到它的边界。 分界线,获取边缘 四.特征提取 area_center (RegionDynThresh, Area, Row, Column) # 计算区域的面积和中心。 select_shape (RegionDynThresh, SelectedRegions, 'area', 'and', 150, 99999) # 根据形状特征选择区域。 inner_circle (SelectedRegions, Row1, Column1, Radius) # 区域最大内圆。 smallest_circle (SelectedRegions, Row2, Column2, Radius1) # 计算区域的最小外接圆参数。 orientation_region (SelectedRegions, Phi) # 区域定位。 region_features (SelectedRegions, 'area', Value) # 计算区域的形状特征。 #==========================================玩法====================================================== dilation_circle (Region2, RegionDilation1, 3.5) erosion_circle (Region2, RegionErosion2, 3.5) difference (RegionDilation1, RegionErosion2, RegionDifference1) # 膨胀 收缩 取差集 得出轮廓 # closing 先膨胀在收缩 # opening 先收缩在膨胀 创建圆弧XLD轮廓 gen_circle_contour_xld select_obj() # 从对象元组中选择指定索引的对象。 write_region() # 保存区域 * 设置文本光标的位置。 set_tposition (WindowHandle, Row3-200, Column3) write_string() # ====================================================================================== 距离工具 1.点到点 distance_pp 在指定点生成一个十字状的轮廓。gen_cross_contour_xld 2.点到直线 distance_pl 3.点到区域的最长最短 distance_pr 4.直线到区域最长最短 distance_lr (平面度) 5.区域与区域最短 distance_rr BLOB分析 几何变换(区域的几何变换,仿射变换,运用几何变换定位处理区域) 1.几何变换 1 平移 move_region; 可以做区域位置平移,平移后相减可以得到区域某一边的边缘 2 缩放 zoom_region 3 镜像 mirror_region (height/2) *2 4 倒置 transpose_region; 5 极坐标与笛卡尔坐标互换 polar_trans_region() , polar_trans_region_inv() # 相反的, (circle_barcode) invert_image() 反转图片 白变黑 2 仿射变换 1 区域的任意变换 affine_trans_region 2 创建二维变换矩阵 hom_mat2d_identity 3 平移 hom_mat2d_translate 4 缩放 hom_mat2d_scale 5 旋转 hom_mat2d_rotate 6 刚性 仿射变换 vector_angle_to_rigid 对象图,区域进行仿射变换 7 扩展图像变换 affine_trans_image 综合例程讲解: ball_seq, check_blister, check_bottle, clip, find_pads , count_pellets 扩展灰度(expand_gray) 填补空白区域之间(取决于灰度或彩色)或分裂重叠区域。 图像取通道(access_channel) 获取一个多通道图像的一个通道; 多通道图像(MultiChannelImage) --- 输出对象(input_object) 输入多通道图像 输出图像(Image) --- 输出对象(output_object) 输出指定的通道图像 通道(Channel) --- 输入元组(input_control) 通道数量,默认值:1;参考值:1,2,3,4,5,6,7,8,9,10,11,12,该值必须1≤Chnnel 区域方向(orientation_region) 区域定位。 区域(Regions) --- 输出对象(input_object) 将要检查的区域(s)。 区域方向弧度(Phi) --- 输出元组(output_control) 区域定位(电弧测量)。
这篇关于halcon-学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置