
Halcon例程解析
文章平均质量分 75
持续更新解析各个Halcon例程 拆解套路、举一反三、顺带讲解理论知识、详细讲解 专栏价格随着文章内容数量增加
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Vector_LW
学无止境
展开
-
Halcon例程解析——measure_ring
文章目录measure_ring摘要代码解析加载图片提取齿轮区域提取齿轮齿牙位置坐标生成圆环检测句柄,检测边缘对。计算最终结果measure_ring摘要测量图中齿轮的齿牙三种间距(弧长、直线距离、角度距离)代码解析加载图片read_image (Image, 'rings_and_nuts')提取齿轮区域自动二值化提取大致区域。再通过紧密度,提取出齿轮的区域。binary_threshold (Image, Region, 'max_separability', 'dark', U原创 2021-02-16 13:19:46 · 1126 阅读 · 0 评论 -
Halcon例程解析——measure_caliper.hdev
文章目录Measure_caliper摘要程序解析准备测试图片设置测量句柄计算灰度投影求导处理Measure_caliper摘要使用测量句柄获得灰度投影结果,再对结果进行求导分析。分析长刻度中心所在位置的一阶导数二阶导数特性以及幅度特征。最终实现对长刻度所在位置的定位程序解析准备测试图片ead_image (ImageOrig, 'caliper/caliper_1')rotate_image (ImageOrig, Image, 90, 'constant')get_image_size原创 2021-02-16 12:56:35 · 849 阅读 · 0 评论 -
Halcon例程详解——组件匹配之 cbm_bin_switch.hdev
文章目录摘要流程拆解例程解析设定组件区域准备训练集训练创建模板可视化模板释放训练模板内存匹配可视化查找结果释放组件模板内存摘要根据已知组件部分训练并创建组件匹配模板,检测目标开关的开关状态。流程拆解绘制组件区域训练训练集,获得位置关系利用训练句柄,创建组件匹配模板使用组件匹配模板查找目标图像中的实例例程解析设定组件区域对于此例程中,开关部位以及开关本身就很适合作为根节点以及子节点。因为这两部分位置关系一定稳定。那么只需要在开关本体上找到一些稳定且简单的特征作为根节点,在选择开关活动模原创 2021-02-09 22:56:56 · 659 阅读 · 0 评论 -
Halcon例程解析——measure_ic_lead
文章目录摘要套路拆解全部代码摘要测量边缘点(对)的经典应用套路拆解第一个需求如下图所示,需要测量芯片本体末端与管脚末端的距离。乍一看,这根本就不存在真正的边缘么,芯片管腿间隙造成了影响。如何才能测量露出管腿的距离。难不成要一根一根的测量取均值? 其实不然,这个例程正好和一维检测原理相吻合。一维检测原理正是使用一定宽度的边缘沿着设定方向取灰度投影,而图中虽然管腿中不存在真正的边缘,但是由于黑白交替,导致最终生成的灰度投影也会与其他部分形成差异。形成边缘。沿着垂直方向做灰度投影如下图所示,背景原创 2021-02-02 00:27:57 · 507 阅读 · 0 评论 -
Halcon例程解析——fuzzy_measure_switch.hdev
文章目录摘要例程详解模糊简介回到例程代码摘要模糊测量例程详解模糊简介“模糊测量” 里的 “模糊” 是什么意思在数字图像处理冈萨雷斯第三版中灰度变换那一章最后小节就描写了 模糊 这一概念引题: 什么叫做年轻人 我们说 25 岁时年轻人 35岁是中年人 这没问题 那26岁是不是年轻人呢。那34岁是年轻人么 还是说有一个绝对阈值说过了这个阈值一个小时就算中年人,反之则是年轻人? 这就很不合理。这根本就不存在一个绝对阈值 这能模糊的说。这就是模糊的由来解决办法:可以这样解决上述问题 我们认为原创 2020-12-25 18:52:26 · 621 阅读 · 0 评论 -
Halcon例程解析——count_fish_sticks.hdev
文章目录摘要例程详解代码摘要亚像素思路一维边缘检测灰度投影直方图可视化例程详解首先根据二值化提取出目标所在大致区域 并且声称一维测量矩形测量矩形所得结果经过个数以及间距检查后 作为结果输出对于测量区域灰度投影可视化 则使用 measure_projection算子这届从卡尺句柄中读取结果。在通过create_funct_1d_array 创建函数句柄 利用local_min_max_funct_1d 算子查找出图中极值点 (可以根据设置参数由离散点拟合连续函数计算出亚像素边缘点 )原创 2020-12-25 18:11:24 · 467 阅读 · 1 评论 -
Halcon案例解析——并行(simulate_aop)
文章目录例程梗概并行算子解析代码解析直接上一张运行截图例程梗概该例程可以分为三个部分第一部分主要体现的是 关闭自动并行后 计算中值滤波所需要的时长。第二部分体现的是 开启自动并行 并且限制最大并行核数量 本机器共有 12 个内核 也就会进行 12 次循环 记录每次中值滤波所消耗的时长。第三部分体现的是 关闭自动并行 自行编写并行代码,以模拟并行效果,同样根据内核数量进行依次测试,最后绘制折线图 对比并行什么是并行呢 就是一种加快CPU计算速度的方法如图 这台机器CPU一共有1原创 2020-12-23 19:21:06 · 1061 阅读 · 0 评论 -
Halcon例程分析——灰度投影(gray_projections)
文章目录一、基本原理二、Halcon中例程gray_projections三、拓展一、基本原理直接上图 灰度投影 顾名思义 也就是一部分区域的投影 如果是水平投影 那就是水平行方向所有灰度值相加再求均值,知道所有行都计算完毕,相同列也是一样。基本理论很简单 如果涉及到所选区域不是对其行列而旋转一定角度。则可以使用插值算法依次计算各个区域的灰度值,再进行该角度方向上的投影。二、Halcon中例程代码如下 该例程是一个只展示灰度投影的例子,没有其他作用。在求得水平方向上的灰度投影后,又通过绘制直原创 2020-12-07 23:53:24 · 3669 阅读 · 0 评论 -
Halcon案例分析——Hough圆变换(hough_circles)
文章目录算子介绍算子使用详解 及 拓展首先是 **hough_circle_trans** 这个算子 输出结果如下图hough_circlesDemo演示之前写了Hough直线变换 这次就要写Hough圆变换 Halcon中也提供了相关算子 但是 没有配套例程算子是hough_circles还有一个可以查看中间结果的算子hough_circle_trans 。首先介绍一下该算子的每个参数详细介绍各个算子的使用方法以及拓展通过一个小程序来看看效果算子介绍hough_circles(Regi.原创 2020-11-24 00:28:45 · 2268 阅读 · 0 评论 -
Halcon例程分析——卡尺检测边缘夹角(apply_metrology_model_diamond.hdev)
文章目录卡尺原理卡尺调用步骤例程代码卡尺原理程序运行很炫酷,感觉很高大上 ,仔细看看代码 ,就很慢慢觉得 切 也不过如此。之前也写过一个文章 也是卡尺工具的例程说白了 卡尺不过是利用一些小的边缘检测矩形,逐一检测出边缘点。再通过拟合求出目标轮廓。图中黄色栅格就是一个个边缘检测小矩形。在 add_metrology_object_line_measure 算子中 通过 MeasureLength1 、MeasureLength2 设置其大小。圆形检测等同理在这个图中就可以很好看出卡.原创 2020-11-21 23:08:22 · 1614 阅读 · 0 评论 -
Halcon案例分析——霍夫直线(hough_lines.hdev)
文章目录@[TOC]例程代码步骤霍夫找直线原理参数例程代码* Detect lines in an image with the help of the Hough transform* and return it in HNF* read_image (Image, 'fabrik')rectangle1_domain (Image, ImageReduced, 230, 180, 330, 280)* Detect edges (amplitude) using the Sobel ope原创 2020-11-19 23:59:05 · 1398 阅读 · 0 评论 -
Halcon例程解析——缩放XLD缩放region
缩放XLDgen_image_const (Image, 'byte', 8200, 4200)set_system ('clip_region', 'false')gen_contour_nurbs_xld (ROI_0, [1520.19,2165.88,4269.98,3680.38,2153.81,1411.57], [2714.24,2463.22,-2213.23,7109.67,4982.72,4796.78], [0,0,0,0,0.357983,0.691316,1,1,1,1]原创 2020-10-28 18:19:14 · 1142 阅读 · 0 评论 -
Halcon例程解析——边缘提取(像素)
文章目录针对尺寸较大的图片 可以采用网格预处理实现性能提升带通求取划痕所求梯度图 可能不是很理想 借助原图扩展梯度图针对尺寸较大的图片 可以采用网格预处理实现性能提升autobahn.hdev整张图片处理 耗时长 而且多是不感兴趣区域采用网格裁剪图片 计算网格图图片梯度 提取感兴趣区域范围 膨胀 二值化求取整个边缘sobel_amp 算子对于一个划痕来说 只能求得两侧边缘 不能讲整个划痕提取出来 因为所求梯度只在灰度骤变时变大带通求取划痕bandpass_imag.hdev使用 b原创 2020-05-28 21:48:38 · 1038 阅读 · 0 评论 -
Halcon例程解析——基于组件匹配
文章目录基本套路基本套路cbm_bin_switch.hdev第一步: 创建两个相对位置会变化的两个区域 ,用于之后创建模板第二步 准备组件不同状态的图片调用算子 (状态一图片,状态一区域(第一步创建的),状态二图片)train_model_components (ModelImage, InitialComponents, TrainingImage, ModelComponents, 30, 30, 20, 0.7, -1, -1, rad(25), ‘speed’, ‘rigid原创 2020-05-19 17:23:26 · 1227 阅读 · 0 评论 -
Halcon例程解析——模板匹配(基于形状)
文章目录利用多张样本图片制作模板图片设置XLD模板极性粗定位、精求角度设置最大形变系数 适应 软性物体局部可变形算子设置最大形变参数对比不设置利用多张样本图片制作模板图片create_average_shape_model.hdev左侧匹配结果为利用自绘制图片匹配 分数较低右侧匹配结果为8各样本 组成多通道图片再多通道取均值得出单通道图 作为模板图片 匹配结果分数显著提高设置XLD模板极性create_shape_model_xld.hdev在利用XLD创建模板时 极性只能选择 ignore原创 2020-05-15 17:25:06 · 1727 阅读 · 0 评论 -
Halcon例程解析——apply_metrology_model.hdev
dev_update_off ()read_image (Image, 'pads')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)set_display_font (WindowHandle, 1...原创 2020-04-29 19:30:17 · 695 阅读 · 0 评论 -
Halcon例程解析——3d_coordinates.hdev
* * Initialize the programdev_close_window ()dev_open_window (0, 0, 768, 576, 'black', WindowHandle)dev_update_off ()dev_set_draw ('margin')dev_set_line_width (3)set_display_font (WindowHandle,...原创 2020-04-08 21:06:17 · 714 阅读 · 0 评论